
/* DWARF original prototype: void AddNoiseImage._omp_fn.0(anon_struct_48_10_da0cedb5 * param_0) */

void __thiscall AddNoiseImage__omp_fn_0(void *this)

{
  double dVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  int iVar11;
  undefined4 *puVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int *piVar19;
  int iVar20;
  undefined4 *puVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  
  iVar23 = *(int *)((int)this + 8);
  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar2 = PTR_GenerateDifferentialNoise_003a897c;
  if (iVar4 == 0) {
    trap(7);
  }
  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;
  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;
  if (iVar5 < iVar4) {
    iVar24 = iVar24 + 1;
    iVar4 = 0;
  }
  iVar4 = iVar24 * iVar5 + iVar4;
  iVar24 = iVar24 + iVar4;
  if (iVar4 < iVar24) {
    iVar5 = *(int *)((int)this + 0x20);
    iVar22 = *(int *)((int)this + 0x1c);
    uVar6 = *(undefined4 *)((int)this + 0x18);
    puVar7 = PTR_s_courses_003a88ec + -0x1384;
    uVar8 = *(undefined4 *)((int)this + 0x14);
    uVar9 = *(undefined4 *)((int)this + 0x10);
    uVar10 = *(undefined4 *)((int)this + 0xc);
    do {
      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();
      if (*(int *)((int)this + 0x24) != 0) {
        puVar12 = (undefined4 *)
                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);
        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)
                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));
        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {
LAB_001d8a7c:
          *(undefined4 *)((int)this + 0x24) = 0;
        }
        else {
          iVar17 = *(int *)(iVar23 + 0x18);
          if (0 < iVar17) {
            iVar20 = 0;
            do {
              iVar14 = *(int *)(iVar23 + 0x2c0);
              if (0 < iVar14) {
                iVar17 = 0;
                puVar21 = puVar12;
                do {
                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,
                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {
LAB_001d8940:
                    iVar14 = *(int *)(iVar23 + 0x2c0);
                    iVar17 = iVar17 + 1;
                    puVar21 = puVar21 + 1;
                    if (iVar14 <= iVar17) goto LAB_001d89cc;
                  }
                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;
                  uVar18 = *(uint *)(iVar16 + 4);
                  if (uVar18 == 0) goto LAB_001d8940;
                  if ((uVar18 & 1) == 0) {
                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,
                                                      uVar10);
                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;
                    if (*(int *)(iVar14 + 4) != 0) {
                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;
                    }
                    goto LAB_001d8940;
                  }
                  iVar17 = iVar17 + 1;
                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;
                  iVar14 = *(int *)(iVar23 + 0x2c0);
                  puVar21 = puVar21 + 1;
                } while (iVar17 < iVar14);
LAB_001d89cc:
                iVar17 = *(int *)(iVar23 + 0x18);
              }
              iVar20 = iVar20 + 1;
              puVar12 = puVar12 + iVar14;
              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;
            } while (iVar20 < iVar17);
          }
          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);
          if (iVar11 == 0) {
            *(undefined4 *)((int)this + 0x24) = 0;
          }
          if (*(int *)(iVar23 + 0x328) != 0) {
            piVar19 = *(int **)((int)this + 0x28);
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar3 = PTR_GOMP_atomic_end_003a9438;
            uVar18 = piVar19[1];
            uVar15 = uVar18 + 1;
            piVar19[1] = uVar15;
            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;
            (*(code *)puVar3)();
            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)
                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),
                                (*(undefined4 **)((int)this + 0x28))[1]);
            if (iVar11 == 0) goto LAB_001d8a7c;
          }
        }
      }
      iVar4 = iVar4 + 1;
    } while (iVar24 != iVar4);
  }
  return;
}



void FUN_001d8760(int param_1)

{
  double dVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  int iVar11;
  undefined4 *puVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int *piVar19;
  int iVar20;
  undefined4 *puVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  
  iVar23 = *(int *)(param_1 + 8);
  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar2 = PTR_FUN_003a897c;
  if (iVar4 == 0) {
    trap(7);
  }
  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;
  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;
  if (iVar5 < iVar4) {
    iVar24 = iVar24 + 1;
    iVar4 = 0;
  }
  iVar4 = iVar24 * iVar5 + iVar4;
  iVar24 = iVar24 + iVar4;
  if (iVar4 < iVar24) {
    iVar5 = *(int *)(param_1 + 0x20);
    iVar22 = *(int *)(param_1 + 0x1c);
    uVar6 = *(undefined4 *)(param_1 + 0x18);
    puVar7 = PTR_s_courses_003a88ec + -0x1384;
    uVar8 = *(undefined4 *)(param_1 + 0x14);
    uVar9 = *(undefined4 *)(param_1 + 0x10);
    uVar10 = *(undefined4 *)(param_1 + 0xc);
    do {
      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();
      if (*(int *)(param_1 + 0x24) != 0) {
        puVar12 = (undefined4 *)
                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);
        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)
                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));
        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {
LAB_001d8a7c:
          *(undefined4 *)(param_1 + 0x24) = 0;
        }
        else {
          iVar17 = *(int *)(iVar23 + 0x18);
          if (0 < iVar17) {
            iVar20 = 0;
            do {
              iVar14 = *(int *)(iVar23 + 0x2c0);
              if (0 < iVar14) {
                iVar17 = 0;
                puVar21 = puVar12;
                do {
                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,
                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {
LAB_001d8940:
                    iVar14 = *(int *)(iVar23 + 0x2c0);
                    iVar17 = iVar17 + 1;
                    puVar21 = puVar21 + 1;
                    if (iVar14 <= iVar17) goto LAB_001d89cc;
                  }
                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;
                  uVar18 = *(uint *)(iVar16 + 4);
                  if (uVar18 == 0) goto LAB_001d8940;
                  if ((uVar18 & 1) == 0) {
                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,
                                                      uVar10);
                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;
                    if (*(int *)(iVar14 + 4) != 0) {
                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;
                    }
                    goto LAB_001d8940;
                  }
                  iVar17 = iVar17 + 1;
                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;
                  iVar14 = *(int *)(iVar23 + 0x2c0);
                  puVar21 = puVar21 + 1;
                } while (iVar17 < iVar14);
LAB_001d89cc:
                iVar17 = *(int *)(iVar23 + 0x18);
              }
              iVar20 = iVar20 + 1;
              puVar12 = puVar12 + iVar14;
              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;
            } while (iVar20 < iVar17);
          }
          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);
          if (iVar11 == 0) {
            *(undefined4 *)(param_1 + 0x24) = 0;
          }
          if (*(int *)(iVar23 + 0x328) != 0) {
            piVar19 = *(int **)(param_1 + 0x28);
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar3 = PTR_GOMP_atomic_end_003a9438;
            uVar18 = piVar19[1];
            uVar15 = uVar18 + 1;
            piVar19[1] = uVar15;
            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;
            (*(code *)puVar3)();
            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)
                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),
                                (*(undefined4 **)(param_1 + 0x28))[1]);
            if (iVar11 == 0) goto LAB_001d8a7c;
          }
        }
      }
      iVar4 = iVar4 + 1;
    } while (iVar24 != iVar4);
  }
  return;
}


lui gp,0x1e
addiu gp,gp,-0x7eb0
addu gp,gp,t9
addiu sp,sp,-0x78
lw t9,-0x6fa4(gp)
sdc1 f20,0x70(sp)
sw gp,0x18(sp)
sw ra,0x6c(sp)
sw s8,0x68(sp)
sw s3,0x54(sp)
or s3,a0,zero
sw s2,0x50(sp)
sw s0,0x48(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s1,0x4c(sp)
jalr t9
_lw s8,0x8(a0)
lw gp,0x18(sp)
lw t9,-0x73a8(gp)
jalr t9
_or s0,v0,zero
lw s2,0x1c(s8)
lw gp,0x18(sp)
teq s0,zero
div s2,s0
mfhi s0
slt v1,v0,s0
beq v1,zero,0x001d87e8
_mflo s2
addiu s2,s2,0x1
or s0,zero,zero
mul v1,s2,v0
addu s0,v1,s0
addu v0,s2,s0
sw v0,0x30(sp)
slt v0,s0,v0
beq v0,zero,0x001d8a94
_lw ra,0x6c(sp)
lw v0,0x20(s3)
ldc1 f20,0x0(s3)
lw s7,0x1c(s3)
sw v0,0x40(sp)
lw v0,0x18(s3)
sw v0,0x34(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,-0x1384
sw v0,0x44(sp)
lw v0,0x14(s3)
sw v0,0x3c(sp)
lw v0,0x10(s3)
sw v0,0x38(sp)
lw v0,0xc(s3)
sw v0,0x28(sp)
lw v0,-0x7f34(gp)
sw v0,0x2c(sp)
lw t9,-0x73a8(gp)
jalr t9
_nop
lw v1,0x24(s3)
or s1,v0,zero
beq v1,zero,0x001d8a80
_lw gp,0x18(sp)
lw s4,0x38(sp)
li s2,0x1
lw a3,0x18(s8)
or a1,zero,zero
lw t9,-0x7254(gp)
or a2,s0,zero
lw a0,0x3c(sp)
sw s2,0x10(sp)
jalr t9
_sw s4,0x14(sp)
or a1,zero,zero
lw gp,0x18(sp)
or a2,s0,zero
lw a3,0x18(s7)
or s6,v0,zero
lw a0,0x34(sp)
sw s2,0x10(sp)
lw t9,-0x7c60(gp)
jalr t9
_sw s4,0x14(sp)
lw gp,0x18(sp)
beq s6,zero,0x001d8a7c
_or s2,v0,zero
beq v0,zero,0x001d8a7c
_nop
lw a1,0x18(s8)
blez a1,0x001d89f0
_lw v0,0x40(sp)
sll s1,s1,0x2
or s4,zero,zero
addu v0,v0,s1
sw v0,0x24(sp)
lw v1,0x2c0(s8)
blez v1,0x001d89d0
_nop
or s1,zero,zero
b 0x001d8954
_or s5,s6,zero
lw v0,0x24(sp)
lw a2,0x28(sp)
lw t9,0x2c(sp)
lw a0,0x0(v0)
jalr t9
_sdc1 f20,0x10(sp)
lw a0,0x2d0(s7)
lw v1,0x20(sp)
addu v1,a0,v1
lw a0,0x4(v1)
beq a0,zero,0x001d8940
_lw gp,0x18(sp)
cvt.s.D f0,f0
lw v1,0x8(v1)
sll v1,v1,0x2
addu v1,s2,v1
swc1 f0,0x0(v1)
lw v1,0x2c0(s8)
addiu s1,s1,0x1
slt a0,s1,v1
beq a0,zero,0x001d89cc
_addiu s5,s5,0x4
sll v1,s1,0x1
lw a0,0x2d0(s8)
addu v1,v1,s1
sll v1,v1,0x2
addu v1,a0,v1
lw a1,0x0(v1)
sll v1,a1,0x1
addu v1,v1,a1
sll v1,v1,0x2
addu a0,a0,v1
lw a0,0x4(a0)
beq a0,zero,0x001d8940
_nop
lw a0,0x2d0(s7)
sw v1,0x20(sp)
addu a0,a0,v1
lw a1,0x4(a0)
beq a1,zero,0x001d8940
_andi a2,a1,0x1
beq a2,zero,0x001d88fc
_lw a1,0x0(s5)
lw v1,0x8(a0)
addiu s1,s1,0x1
sll v1,v1,0x2
addu v1,s2,v1
sw a1,0x0(v1)
lw v1,0x2c0(s8)
slt a0,s1,v1
bne a0,zero,0x001d8954
_addiu s5,s5,0x4
lw a1,0x18(s8)
lw a0,0x2c0(s7)
addiu s4,s4,0x1
sll v1,v1,0x2
slt a2,s4,a1
sll a0,a0,0x2
addu s6,s6,v1
bne a2,zero,0x001d88e4
_addu s2,s2,a0
lw t9,-0x73b8(gp)
lw a1,0x38(sp)
jalr t9
_lw a0,0x34(sp)
bne v0,zero,0x001d8a0c
_lw gp,0x18(sp)
sw zero,0x24(s3)
lw v0,0x328(s8)
beq v0,zero,0x001d8a80
_lw t9,-0x75cc(gp)
jalr t9
_lw s1,0x28(s3)
lw v0,0x4(s1)
lw gp,0x18(sp)
lw a0,0x0(s1)
addiu v1,v0,0x1
sltu v0,v1,v0
lw t9,-0x7478(gp)
addu v0,v0,a0
sw v1,0x4(s1)
jalr t9
_sw v0,0x0(s1)
or a0,s8,zero
lw v1,0x28(s3)
lw gp,0x18(sp)
lw v0,0x1c(s8)
lw a1,0x44(sp)
lw a3,0x4(v1)
lw t9,-0x7bfc(gp)
lw a2,0x0(v1)
sw v0,0x14(sp)
jalr t9
_sw zero,0x10(sp)
bne v0,zero,0x001d8a80
_lw gp,0x18(sp)
sw zero,0x24(s3)
lw v0,0x30(sp)
addiu s0,s0,0x1
bne v0,s0,0x001d884c
_lw t9,-0x73a8(gp)
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
ldc1 f20,0x70(sp)
jr ra
_addiu sp,sp,0x78
(translation_unit "void FUN_001d8760(int param_1)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001d8760(int param_1)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001d8760(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (expression_statement "iVar23 = *(int *)(param_1 + 8);" (assignment_expression "iVar23 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar4 = (*(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 "iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar5 = (*(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 "()" ( )))) ;) (expression_statement "puVar2 = PTR_FUN_003a897c;" (assignment_expression "puVar2 = PTR_FUN_003a897c" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 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 "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;" (assignment_expression "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) / iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;" (assignment_expression "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) % iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (compound_statement "{\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = iVar24 * iVar5 + iVar4;" (assignment_expression "iVar4 = iVar24 * iVar5 + iVar4" identifier = (binary_expression "iVar24 * iVar5 + iVar4" (binary_expression "iVar24 * iVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar24 = iVar24 + iVar4;" (assignment_expression "iVar24 = iVar24 + iVar4" identifier = (binary_expression "iVar24 + iVar4" identifier + identifier)) ;) (if_statement "if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" if (parenthesized_expression "(iVar4 < iVar24)" ( (binary_expression "iVar4 < iVar24" identifier < identifier) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar22 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = PTR_s_courses_003a88ec + -0x1384;" (assignment_expression "puVar7 = PTR_s_courses_003a88ec + -0x1384" identifier = (binary_expression "PTR_s_courses_003a88ec + -0x1384" identifier + number_literal)) ;) (expression_statement "uVar8 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);" do (compound_statement "{\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    }" { (expression_statement "iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar11 = (*(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 (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) != 0)" ( (binary_expression "*(int *)(param_1 + 0x24) != 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" { (expression_statement "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);" (assignment_expression "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" identifier = (cast_expression "(undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar23 + 0x18)" * (cast_expression "(undefined4 *)(iVar23 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));" (assignment_expression "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" identifier = (call_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (parenthesized_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)" ( (pointer_expression "*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" * (cast_expression "(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" * (cast_expression "(undefined4 *)(iVar22 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" if (parenthesized_expression "((puVar12 == (undefined4 *)0x0) || (iVar13 == 0))" ( (binary_expression "(puVar12 == (undefined4 *)0x0) || (iVar13 == 0)" (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }" { (labeled_statement "LAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" else (compound_statement "{\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" { (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" if (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) (compound_statement "{\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);" do (compound_statement "{\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            }" { (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar12;" (assignment_expression "puVar21 = puVar12" identifier = identifier) ;) (do_statement "do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);" do (compound_statement "{\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                }" { (while_statement "while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" while (parenthesized_expression "(iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0)" ( (comma_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" identifier = (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar17 * 0xc" identifier * number_literal)) )))) * number_literal)) , (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14 + 4" (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) )))) == number_literal)) )) (compound_statement "{\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" { (labeled_statement "LAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;)) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 <= iVar17) goto LAB_001d89cc;" if (parenthesized_expression "(iVar14 <= iVar17)" ( (binary_expression "iVar14 <= iVar17" identifier <= identifier) )) (goto_statement "goto LAB_001d89cc;" goto statement_identifier ;)) })) (expression_statement "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar18 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar18 == 0) goto LAB_001d8940;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;)) (if_statement "if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" if (parenthesized_expression "((uVar18 & 1) == 0)" ( (binary_expression "(uVar18 & 1) == 0" (parenthesized_expression "(uVar18 & 1)" ( (binary_expression "uVar18 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" { (expression_statement "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);" (assignment_expression "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" identifier = (cast_expression "(double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (pointer_expression "*(undefined4 *)(iVar5 + iVar11 * 4)" * (cast_expression "(undefined4 *)(iVar5 + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar11 * 4)" ( (binary_expression "iVar5 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) , (pointer_expression "*puVar21" * identifier) , identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" if (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" { (expression_statement "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;" (assignment_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1" (pointer_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dVar1" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;" (assignment_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21" (pointer_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < iVar14)" ( (binary_expression "iVar17 < iVar14" identifier < identifier) )) ;) (labeled_statement "LAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);" statement_identifier : (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;)) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + iVar14;" (assignment_expression "puVar12 = puVar12 + iVar14" identifier = (binary_expression "puVar12 + iVar14" identifier + identifier)) ;) (expression_statement "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;" (assignment_expression "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier = (binary_expression "iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar22 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar22 + 0x2c0)" * (cast_expression "(int *)(iVar22 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c0)" ( (binary_expression "iVar22 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar20 < iVar17)" ( (binary_expression "iVar20 < iVar17" identifier < identifier) )) ;) })) (expression_statement "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);" (assignment_expression "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" (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 "(uVar6,uVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" if (parenthesized_expression "(*(int *)(iVar23 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar23 + 0x328) != 0" (pointer_expression "*(int *)(iVar23 + 0x328)" * (cast_expression "(int *)(iVar23 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x328)" ( (binary_expression "iVar23 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" { (expression_statement "piVar19 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003a92e4)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003a92e4" * (cast_expression "(code *)PTR_GOMP_atomic_start_003a92e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar3 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar3 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar18 = piVar19[1];" (assignment_expression "uVar18 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar18 + 1;" (assignment_expression "uVar15 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = uVar15;" (assignment_expression "piVar19[1] = uVar15" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19" (pointer_expression "*piVar19" * identifier) = (binary_expression "(uint)(uVar15 < uVar18) + *piVar19" (call_expression "(uint)(uVar15 < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar18)" ( (binary_expression "uVar15 < uVar18" identifier < identifier) ))) + (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "(*(code *)puVar3)();" (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);" (assignment_expression "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" ( identifier , identifier , (pointer_expression "**(undefined4 **)(param_1 + 0x28)" * (pointer_expression "*(undefined4 **)(param_1 + 0x28)" * (cast_expression "(undefined4 **)(param_1 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(param_1 + 0x28))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x28))" ( (pointer_expression "*(undefined4 **)(param_1 + 0x28)" * (cast_expression "(undefined4 **)(param_1 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) )) [ number_literal ]) )))) ;) (if_statement "if (iVar11 == 0) goto LAB_001d8a7c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8a7c;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar4)" ( (binary_expression "iVar24 != iVar4" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void AddNoiseImage._omp_fn.0(anon_struct_48_10_da0cedb5 * param_0) */\n\nvoid __thiscall AddNoiseImage__omp_fn_0(void *this)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)((int)this + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_GenerateDifferentialNoise_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)((int)this + 0x20);\n    iVar22 = *(int *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)((int)this + 0x14);\n    uVar9 = *(undefined4 *)((int)this + 0x10);\n    uVar10 = *(undefined4 *)((int)this + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall AddNoiseImage__omp_fn_0(void *this)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)((int)this + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_GenerateDifferentialNoise_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)((int)this + 0x20);\n    iVar22 = *(int *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)((int)this + 0x14);\n    uVar9 = *(undefined4 *)((int)this + 0x10);\n    uVar10 = *(undefined4 *)((int)this + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "AddNoiseImage__omp_fn_0(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)((int)this + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_GenerateDifferentialNoise_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)((int)this + 0x20);\n    iVar22 = *(int *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)((int)this + 0x14);\n    uVar9 = *(undefined4 *)((int)this + 0x10);\n    uVar10 = *(undefined4 *)((int)this + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (expression_statement "iVar23 = *(int *)((int)this + 8);" (assignment_expression "iVar23 = *(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 "iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar4 = (*(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 "iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar5 = (*(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 "()" ( )))) ;) (expression_statement "puVar2 = PTR_GenerateDifferentialNoise_003a897c;" (assignment_expression "puVar2 = PTR_GenerateDifferentialNoise_003a897c" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 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 "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;" (assignment_expression "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) / iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;" (assignment_expression "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) % iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (compound_statement "{\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = iVar24 * iVar5 + iVar4;" (assignment_expression "iVar4 = iVar24 * iVar5 + iVar4" identifier = (binary_expression "iVar24 * iVar5 + iVar4" (binary_expression "iVar24 * iVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar24 = iVar24 + iVar4;" (assignment_expression "iVar24 = iVar24 + iVar4" identifier = (binary_expression "iVar24 + iVar4" identifier + identifier)) ;) (if_statement "if (iVar4 < iVar24) {\n    iVar5 = *(int *)((int)this + 0x20);\n    iVar22 = *(int *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)((int)this + 0x14);\n    uVar9 = *(undefined4 *)((int)this + 0x10);\n    uVar10 = *(undefined4 *)((int)this + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" if (parenthesized_expression "(iVar4 < iVar24)" ( (binary_expression "iVar4 < iVar24" identifier < identifier) )) (compound_statement "{\n    iVar5 = *(int *)((int)this + 0x20);\n    iVar22 = *(int *)((int)this + 0x1c);\n    uVar6 = *(undefined4 *)((int)this + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)((int)this + 0x14);\n    uVar9 = *(undefined4 *)((int)this + 0x10);\n    uVar10 = *(undefined4 *)((int)this + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" { (expression_statement "iVar5 = *(int *)((int)this + 0x20);" (assignment_expression "iVar5 = *(int *)((int)this + 0x20)" identifier = (pointer_expression "*(int *)((int)this + 0x20)" * (cast_expression "(int *)((int)this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x20)" ( (binary_expression "(int)this + 0x20" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)((int)this + 0x1c);" (assignment_expression "iVar22 = *(int *)((int)this + 0x1c)" identifier = (pointer_expression "*(int *)((int)this + 0x1c)" * (cast_expression "(int *)((int)this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)((int)this + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)((int)this + 0x18)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x18)" * (cast_expression "(undefined4 *)((int)this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar7 = PTR_s_courses_003a88ec + -0x1384;" (assignment_expression "puVar7 = PTR_s_courses_003a88ec + -0x1384" identifier = (binary_expression "PTR_s_courses_003a88ec + -0x1384" identifier + number_literal)) ;) (expression_statement "uVar8 = *(undefined4 *)((int)this + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)((int)this + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x14)" * (cast_expression "(undefined4 *)((int)this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x14)" ( (binary_expression "(int)this + 0x14" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)((int)this + 0x10);" (assignment_expression "uVar9 = *(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 "uVar10 = *(undefined4 *)((int)this + 0xc);" (assignment_expression "uVar10 = *(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      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);" do (compound_statement "{\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    }" { (expression_statement "iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar11 = (*(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 (*(int *)((int)this + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)this + 0x24) != 0)" ( (binary_expression "*(int *)((int)this + 0x24) != 0" (pointer_expression "*(int *)((int)this + 0x24)" * (cast_expression "(int *)((int)this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x24)" ( (binary_expression "(int)this + 0x24" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" { (expression_statement "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);" (assignment_expression "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" identifier = (cast_expression "(undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar23 + 0x18)" * (cast_expression "(undefined4 *)(iVar23 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));" (assignment_expression "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" identifier = (call_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (parenthesized_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)" ( (pointer_expression "*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" * (cast_expression "(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" * (cast_expression "(undefined4 *)(iVar22 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" if (parenthesized_expression "((puVar12 == (undefined4 *)0x0) || (iVar13 == 0))" ( (binary_expression "(puVar12 == (undefined4 *)0x0) || (iVar13 == 0)" (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;\n        }" { (labeled_statement "LAB_001d8a7c:\n          *(undefined4 *)((int)this + 0x24) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)this + 0x24) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x24) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x24)" * (cast_expression "(undefined4 *)((int)this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x24)" ( (binary_expression "(int)this + 0x24" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" else (compound_statement "{\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" { (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" if (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) (compound_statement "{\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);" do (compound_statement "{\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            }" { (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar12;" (assignment_expression "puVar21 = puVar12" identifier = identifier) ;) (do_statement "do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);" do (compound_statement "{\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                }" { (while_statement "while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" while (parenthesized_expression "(iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0)" ( (comma_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" identifier = (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar17 * 0xc" identifier * number_literal)) )))) * number_literal)) , (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14 + 4" (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) )))) == number_literal)) )) (compound_statement "{\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" { (labeled_statement "LAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;)) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 <= iVar17) goto LAB_001d89cc;" if (parenthesized_expression "(iVar14 <= iVar17)" ( (binary_expression "iVar14 <= iVar17" identifier <= identifier) )) (goto_statement "goto LAB_001d89cc;" goto statement_identifier ;)) })) (expression_statement "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar18 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar18 == 0) goto LAB_001d8940;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;)) (if_statement "if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" if (parenthesized_expression "((uVar18 & 1) == 0)" ( (binary_expression "(uVar18 & 1) == 0" (parenthesized_expression "(uVar18 & 1)" ( (binary_expression "uVar18 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" { (expression_statement "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);" (assignment_expression "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" identifier = (cast_expression "(double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (pointer_expression "*(undefined4 *)(iVar5 + iVar11 * 4)" * (cast_expression "(undefined4 *)(iVar5 + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar11 * 4)" ( (binary_expression "iVar5 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) , (pointer_expression "*puVar21" * identifier) , identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" if (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" { (expression_statement "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;" (assignment_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1" (pointer_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dVar1" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;" (assignment_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21" (pointer_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < iVar14)" ( (binary_expression "iVar17 < iVar14" identifier < identifier) )) ;) (labeled_statement "LAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);" statement_identifier : (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;)) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + iVar14;" (assignment_expression "puVar12 = puVar12 + iVar14" identifier = (binary_expression "puVar12 + iVar14" identifier + identifier)) ;) (expression_statement "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;" (assignment_expression "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier = (binary_expression "iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar22 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar22 + 0x2c0)" * (cast_expression "(int *)(iVar22 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c0)" ( (binary_expression "iVar22 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar20 < iVar17)" ( (binary_expression "iVar20 < iVar17" identifier < identifier) )) ;) })) (expression_statement "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);" (assignment_expression "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" (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 "(uVar6,uVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)this + 0x24) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)this + 0x24) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x24) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x24)" * (cast_expression "(undefined4 *)((int)this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x24)" ( (binary_expression "(int)this + 0x24" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" if (parenthesized_expression "(*(int *)(iVar23 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar23 + 0x328) != 0" (pointer_expression "*(int *)(iVar23 + 0x328)" * (cast_expression "(int *)(iVar23 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x328)" ( (binary_expression "iVar23 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar19 = *(int **)((int)this + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" { (expression_statement "piVar19 = *(int **)((int)this + 0x28);" (assignment_expression "piVar19 = *(int **)((int)this + 0x28)" identifier = (pointer_expression "*(int **)((int)this + 0x28)" * (cast_expression "(int **)((int)this + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003a92e4)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003a92e4" * (cast_expression "(code *)PTR_GOMP_atomic_start_003a92e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar3 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar3 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar18 = piVar19[1];" (assignment_expression "uVar18 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar18 + 1;" (assignment_expression "uVar15 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = uVar15;" (assignment_expression "piVar19[1] = uVar15" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19" (pointer_expression "*piVar19" * identifier) = (binary_expression "(uint)(uVar15 < uVar18) + *piVar19" (call_expression "(uint)(uVar15 < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar18)" ( (binary_expression "uVar15 < uVar18" identifier < identifier) ))) + (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "(*(code *)puVar3)();" (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1]);" (assignment_expression "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1])" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23,puVar7,**(undefined4 **)((int)this + 0x28),\n                                (*(undefined4 **)((int)this + 0x28))[1])" ( identifier , identifier , (pointer_expression "**(undefined4 **)((int)this + 0x28)" * (pointer_expression "*(undefined4 **)((int)this + 0x28)" * (cast_expression "(undefined4 **)((int)this + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (subscript_expression "(*(undefined4 **)((int)this + 0x28))[1]" (parenthesized_expression "(*(undefined4 **)((int)this + 0x28))" ( (pointer_expression "*(undefined4 **)((int)this + 0x28)" * (cast_expression "(undefined4 **)((int)this + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) )))) ;) (if_statement "if (iVar11 == 0) goto LAB_001d8a7c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8a7c;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar4)" ( (binary_expression "iVar24 != iVar4" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001d8760(int param_1)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001d8760(int param_1)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001d8760(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (expression_statement "iVar23 = *(int *)(param_1 + 8);" (assignment_expression "iVar23 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar4 = (*(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 "iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar5 = (*(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 "()" ( )))) ;) (expression_statement "puVar2 = PTR_FUN_003a897c;" (assignment_expression "puVar2 = PTR_FUN_003a897c" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 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 "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;" (assignment_expression "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) / iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;" (assignment_expression "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4" identifier = (binary_expression "*(int *)(iVar23 + 0x1c) % iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (compound_statement "{\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = iVar24 * iVar5 + iVar4;" (assignment_expression "iVar4 = iVar24 * iVar5 + iVar4" identifier = (binary_expression "iVar24 * iVar5 + iVar4" (binary_expression "iVar24 * iVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar24 = iVar24 + iVar4;" (assignment_expression "iVar24 = iVar24 + iVar4" identifier = (binary_expression "iVar24 + iVar4" identifier + identifier)) ;) (if_statement "if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" if (parenthesized_expression "(iVar4 < iVar24)" ( (binary_expression "iVar4 < iVar24" identifier < identifier) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar22 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = PTR_s_courses_003a88ec + -0x1384;" (assignment_expression "puVar7 = PTR_s_courses_003a88ec + -0x1384" identifier = (binary_expression "PTR_s_courses_003a88ec + -0x1384" identifier + number_literal)) ;) (expression_statement "uVar8 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);" do (compound_statement "{\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    }" { (expression_statement "iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar11 = (*(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 (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) != 0)" ( (binary_expression "*(int *)(param_1 + 0x24) != 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" { (expression_statement "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);" (assignment_expression "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" identifier = (cast_expression "(undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar23 + 0x18)" * (cast_expression "(undefined4 *)(iVar23 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));" (assignment_expression "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" identifier = (call_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (parenthesized_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)" ( (pointer_expression "*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" * (cast_expression "(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" * (cast_expression "(undefined4 *)(iVar22 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" if (parenthesized_expression "((puVar12 == (undefined4 *)0x0) || (iVar13 == 0))" ( (binary_expression "(puVar12 == (undefined4 *)0x0) || (iVar13 == 0)" (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }" { (labeled_statement "LAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" else (compound_statement "{\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" { (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" if (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) (compound_statement "{\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);" do (compound_statement "{\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            }" { (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar12;" (assignment_expression "puVar21 = puVar12" identifier = identifier) ;) (do_statement "do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);" do (compound_statement "{\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                }" { (while_statement "while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" while (parenthesized_expression "(iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0)" ( (comma_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" identifier = (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar17 * 0xc" identifier * number_literal)) )))) * number_literal)) , (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14 + 4" (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar23 + 0x2d0)" * (cast_expression "(int *)(iVar23 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2d0)" ( (binary_expression "iVar23 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) )))) == number_literal)) )) (compound_statement "{\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" { (labeled_statement "LAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;)) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 <= iVar17) goto LAB_001d89cc;" if (parenthesized_expression "(iVar14 <= iVar17)" ( (binary_expression "iVar14 <= iVar17" identifier <= identifier) )) (goto_statement "goto LAB_001d89cc;" goto statement_identifier ;)) })) (expression_statement "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar18 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar16 + 4)" identifier = (pointer_expression "*(uint *)(iVar16 + 4)" * (cast_expression "(uint *)(iVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar18 == 0) goto LAB_001d8940;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;)) (if_statement "if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" if (parenthesized_expression "((uVar18 & 1) == 0)" ( (binary_expression "(uVar18 & 1) == 0" (parenthesized_expression "(uVar18 & 1)" ( (binary_expression "uVar18 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" { (expression_statement "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);" (assignment_expression "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" identifier = (cast_expression "(double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" ( (pointer_expression "*(undefined4 *)(iVar5 + iVar11 * 4)" * (cast_expression "(undefined4 *)(iVar5 + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar11 * 4)" ( (binary_expression "iVar5 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) , (pointer_expression "*puVar21" * identifier) , identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14" identifier = (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" * (cast_expression "(int *)(iVar22 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d0)" ( (binary_expression "iVar22 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" if (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" { (expression_statement "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;" (assignment_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1" (pointer_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dVar1" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_001d8940;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;" (assignment_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21" (pointer_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "iVar13 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar23 + 0x2c0)" * (cast_expression "(int *)(iVar23 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x2c0)" ( (binary_expression "iVar23 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < iVar14)" ( (binary_expression "iVar17 < iVar14" identifier < identifier) )) ;) (labeled_statement "LAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);" statement_identifier : (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;)) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + iVar14;" (assignment_expression "puVar12 = puVar12 + iVar14" identifier = (binary_expression "puVar12 + iVar14" identifier + identifier)) ;) (expression_statement "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;" (assignment_expression "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier = (binary_expression "iVar13 + *(int *)(iVar22 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar22 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar22 + 0x2c0)" * (cast_expression "(int *)(iVar22 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c0)" ( (binary_expression "iVar22 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar20 < iVar17)" ( (binary_expression "iVar20 < iVar17" identifier < identifier) )) ;) })) (expression_statement "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);" (assignment_expression "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" (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 "(uVar6,uVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" if (parenthesized_expression "(*(int *)(iVar23 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar23 + 0x328) != 0" (pointer_expression "*(int *)(iVar23 + 0x328)" * (cast_expression "(int *)(iVar23 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x328)" ( (binary_expression "iVar23 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" { (expression_statement "piVar19 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x28)" identifier = (pointer_expression "*(int **)(param_1 + 0x28)" * (cast_expression "(int **)(param_1 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003a92e4)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)" ( (pointer_expression "*(code *)PTR_GOMP_atomic_start_003a92e4" * (cast_expression "(code *)PTR_GOMP_atomic_start_003a92e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar3 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar3 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar18 = piVar19[1];" (assignment_expression "uVar18 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar18 + 1;" (assignment_expression "uVar15 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = uVar15;" (assignment_expression "piVar19[1] = uVar15" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19" (pointer_expression "*piVar19" * identifier) = (binary_expression "(uint)(uVar15 < uVar18) + *piVar19" (call_expression "(uint)(uVar15 < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar18)" ( (binary_expression "uVar15 < uVar18" identifier < identifier) ))) + (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "(*(code *)puVar3)();" (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);" (assignment_expression "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" ( identifier , identifier , (pointer_expression "**(undefined4 **)(param_1 + 0x28)" * (pointer_expression "*(undefined4 **)(param_1 + 0x28)" * (cast_expression "(undefined4 **)(param_1 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(param_1 + 0x28))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x28))" ( (pointer_expression "*(undefined4 **)(param_1 + 0x28)" * (cast_expression "(undefined4 **)(param_1 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) )) [ number_literal ]) )))) ;) (if_statement "if (iVar11 == 0) goto LAB_001d8a7c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d8a7c;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar4)" ( (binary_expression "iVar24 != iVar4" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (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 * (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (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) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) * LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))) == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) , (pointer_expression * IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) 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) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001d8760(int param_1)\n\n{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d8760(int param_1)" (identifier "FUN_001d8760") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  double dVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  \n  iVar23 = *(int *)(param_1 + 8);\n  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar2 = PTR_FUN_003a897c;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;\n  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;\n  if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }\n  iVar4 = iVar24 * iVar5 + iVar4;\n  iVar24 = iVar24 + iVar4;\n  if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }\n  return;\n}" ({ "{") (declaration "double dVar1;" (primitive_type "double") (identifier "dVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (expression_statement "iVar23 = *(int *)(param_1 + 8);" (assignment_expression "iVar23 = *(int *)(param_1 + 8)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)()" (identifier "iVar4") (= "=") (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 "iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar5") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_FUN_003a897c;" (assignment_expression "puVar2 = PTR_FUN_003a897c" (identifier "puVar2") (= "=") (identifier "PTR_FUN_003a897c")) (; ";")) (if_statement "if (iVar4 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (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 "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;" (assignment_expression "iVar24 = *(int *)(iVar23 + 0x1c) / iVar4" (identifier "iVar24") (= "=") (binary_expression "*(int *)(iVar23 + 0x1c) / iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "iVar4"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;" (assignment_expression "iVar4 = *(int *)(iVar23 + 0x1c) % iVar4" (identifier "iVar4") (= "=") (binary_expression "*(int *)(iVar23 + 0x1c) % iVar4" (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar5 < iVar4) {\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" (if "if") (parenthesized_expression "(iVar5 < iVar4)" (( "(") (binary_expression "iVar5 < iVar4" (identifier "iVar5") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n    iVar24 = iVar24 + 1;\n    iVar4 = 0;\n  }" ({ "{") (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar4 = iVar24 * iVar5 + iVar4;" (assignment_expression "iVar4 = iVar24 * iVar5 + iVar4" (identifier "iVar4") (= "=") (binary_expression "iVar24 * iVar5 + iVar4" (binary_expression "iVar24 * iVar5" (identifier "iVar24") (* "*") (identifier "iVar5")) (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "iVar24 = iVar24 + iVar4;" (assignment_expression "iVar24 = iVar24 + iVar4" (identifier "iVar24") (= "=") (binary_expression "iVar24 + iVar4" (identifier "iVar24") (+ "+") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < iVar24) {\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar24)" (( "(") (binary_expression "iVar4 < iVar24" (identifier "iVar4") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x20);\n    iVar22 = *(int *)(param_1 + 0x1c);\n    uVar6 = *(undefined4 *)(param_1 + 0x18);\n    puVar7 = PTR_s_courses_003a88ec + -0x1384;\n    uVar8 = *(undefined4 *)(param_1 + 0x14);\n    uVar9 = *(undefined4 *)(param_1 + 0x10);\n    uVar10 = *(undefined4 *)(param_1 + 0xc);\n    do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x20)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar22 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar22 = *(int *)(param_1 + 0x1c)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar7 = PTR_s_courses_003a88ec + -0x1384;" (assignment_expression "puVar7 = PTR_s_courses_003a88ec + -0x1384" (identifier "puVar7") (= "=") (binary_expression "PTR_s_courses_003a88ec + -0x1384" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x1384"))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(param_1 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (do_statement "do {\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    } while (iVar24 != iVar4);" (do "do") (compound_statement "{\n      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n      if (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n    }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar11") (= "=") (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 (*(int *)(param_1 + 0x24) != 0) {\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x24) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) != 0" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);\n        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));\n        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }\n      }" ({ "{") (expression_statement "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);" (assignment_expression "puVar12 = (undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)\n                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" (* "*") (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewVirtualPixels_003a965c"))) () ")")) (argument_list "(uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9)" (( "(") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (identifier "iVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar23 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar23 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar9") () ")"))))) (; ";")) (expression_statement "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));" (assignment_expression "iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (identifier "iVar13") (= "=") (call_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)\n                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (parenthesized_expression "(*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)" (( "(") (pointer_expression "*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" (* "*") (cast_expression "(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_QueueCacheViewAuthenticPixels_003a8c50"))) () ")")) (argument_list "(uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18))" (( "(") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "iVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x18)" (( "(") (binary_expression "iVar22 + 0x18" (identifier "iVar22") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (if_statement "if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }\n        else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" (if "if") (parenthesized_expression "((puVar12 == (undefined4 *)0x0) || (iVar13 == 0))" (( "(") (binary_expression "(puVar12 == (undefined4 *)0x0) || (iVar13 == 0)" (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined4 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;\n        }" ({ "{") (labeled_statement "LAB_001d8a7c:\n          *(undefined4 *)(param_1 + 0x24) = 0;" (statement_identifier "LAB_001d8a7c") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" (else "else") (compound_statement "{\n          iVar17 = *(int *)(iVar23 + 0x18);\n          if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }\n          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);\n          if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }\n          if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }\n        }" ({ "{") (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (0 < iVar17) {\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" (if "if") (parenthesized_expression "(0 < iVar17)" (( "(") (binary_expression "0 < iVar17" (number_literal "0") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n            iVar20 = 0;\n            do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);\n          }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            } while (iVar20 < iVar17);" (do "do") (compound_statement "{\n              iVar14 = *(int *)(iVar23 + 0x2c0);\n              if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }\n              iVar20 = iVar20 + 1;\n              puVar12 = puVar12 + iVar14;\n              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;\n            }" ({ "{") (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar23 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar23 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x2c0)" (( "(") (binary_expression "iVar23 + 0x2c0" (identifier "iVar23") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (0 < iVar14) {\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" (if "if") (parenthesized_expression "(0 < iVar14)" (( "(") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n                iVar17 = 0;\n                puVar21 = puVar12;\n                do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);\nLAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);\n              }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21 = puVar12;" (assignment_expression "puVar21 = puVar12" (identifier "puVar21") (= "=") (identifier "puVar12")) (; ";")) (do_statement "do {\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                } while (iVar17 < iVar14);" (do "do") (compound_statement "{\n                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }\n                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                  uVar18 = *(uint *)(iVar16 + 4);\n                  if (uVar18 == 0) goto LAB_001d8940;\n                  if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }\n                  iVar17 = iVar17 + 1;\n                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;\n                  iVar14 = *(int *)(iVar23 + 0x2c0);\n                  puVar21 = puVar21 + 1;\n                }" ({ "{") (while_statement "while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" (while "while") (parenthesized_expression "(iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0)" (( "(") (comma_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,\n                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (assignment_expression "iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" (identifier "iVar14") (= "=") (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc)" (( "(") (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc" (pointer_expression "*(int *)(iVar23 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar23 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x2d0)" (( "(") (binary_expression "iVar23 + 0x2d0" (identifier "iVar23") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (binary_expression "iVar17 * 0xc" (identifier "iVar17") (* "*") (number_literal "0xc"))) () ")")))) (* "*") (number_literal "0xc"))) (, ",") (binary_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0" (pointer_expression "*(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 0x2d0) + iVar14 + 4)" (( "(") (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14 + 4" (binary_expression "*(int *)(iVar23 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar23 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar23 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x2d0)" (( "(") (binary_expression "iVar23 + 0x2d0" (identifier "iVar23") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);\n                    iVar17 = iVar17 + 1;\n                    puVar21 = puVar21 + 1;\n                    if (iVar14 <= iVar17) goto LAB_001d89cc;\n                  }" ({ "{") (labeled_statement "LAB_001d8940:\n                    iVar14 = *(int *)(iVar23 + 0x2c0);" (statement_identifier "LAB_001d8940") (: ":") (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar23 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar23 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x2c0)" (( "(") (binary_expression "iVar23 + 0x2c0" (identifier "iVar23") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";"))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar14 <= iVar17) goto LAB_001d89cc;" (if "if") (parenthesized_expression "(iVar14 <= iVar17)" (( "(") (binary_expression "iVar14 <= iVar17" (identifier "iVar14") (<= "<=") (identifier "iVar17")) () ")")) (goto_statement "goto LAB_001d89cc;" (goto "goto") (statement_identifier "LAB_001d89cc") (; ";"))) (} "}"))) (expression_statement "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14" (identifier "iVar16") (= "=") (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar22 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2d0)" (( "(") (binary_expression "iVar22 + 0x2d0" (identifier "iVar22") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar16 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar16 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar16 + 4)" (* "*") (cast_expression "(uint *)(iVar16 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar18 == 0) goto LAB_001d8940;" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d8940;" (goto "goto") (statement_identifier "LAB_001d8940") (; ";"))) (if_statement "if ((uVar18 & 1) == 0) {\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" (if "if") (parenthesized_expression "((uVar18 & 1) == 0)" (( "(") (binary_expression "(uVar18 & 1) == 0" (parenthesized_expression "(uVar18 & 1)" (( "(") (binary_expression "uVar18 & 1" (identifier "uVar18") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);\n                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;\n                    if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }\n                    goto LAB_001d8940;\n                  }" ({ "{") (expression_statement "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10);" (assignment_expression "dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (identifier "dVar1") (= "=") (cast_expression "(double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,\n                                                      uVar10)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + iVar11 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + iVar11 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar11 * 4)" (( "(") (binary_expression "iVar5 + iVar11 * 4" (identifier "iVar5") (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) () ")")))) (, ",") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (, ",") (identifier "uVar10") () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;" (assignment_expression "iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14" (identifier "iVar14") (= "=") (binary_expression "*(int *)(iVar22 + 0x2d0) + iVar14" (pointer_expression "*(int *)(iVar22 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar22 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2d0)" (( "(") (binary_expression "iVar22 + 0x2d0" (identifier "iVar22") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar14"))) (; ";")) (if_statement "if (*(int *)(iVar14 + 4) != 0) {\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" (* "*") (cast_expression "(int *)(iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;\n                    }" ({ "{") (expression_statement "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;" (assignment_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1" (pointer_expression "*(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar13 + *(int *)(iVar14 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + *(int *)(iVar14 + 8) * 4)" (( "(") (binary_expression "iVar13 + *(int *)(iVar14 + 8) * 4" (identifier "iVar13") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dVar1" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar1"))) (; ";")) (} "}"))) (goto_statement "goto LAB_001d8940;" (goto "goto") (statement_identifier "LAB_001d8940") (; ";")) (} "}"))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;" (assignment_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21" (pointer_expression "*(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + *(int *)(iVar16 + 8) * 4)" (( "(") (binary_expression "iVar13 + *(int *)(iVar16 + 8) * 4" (identifier "iVar13") (+ "+") (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar23 + 0x2c0);" (assignment_expression "iVar14 = *(int *)(iVar23 + 0x2c0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar23 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar23 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x2c0)" (( "(") (binary_expression "iVar23 + 0x2c0" (identifier "iVar23") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 < iVar14)" (( "(") (binary_expression "iVar17 < iVar14" (identifier "iVar17") (< "<") (identifier "iVar14")) () ")")) (; ";")) (labeled_statement "LAB_001d89cc:\n                iVar17 = *(int *)(iVar23 + 0x18);" (statement_identifier "LAB_001d89cc") (: ":") (expression_statement "iVar17 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar23 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (} "}"))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = puVar12 + iVar14;" (assignment_expression "puVar12 = puVar12 + iVar14" (identifier "puVar12") (= "=") (binary_expression "puVar12 + iVar14" (identifier "puVar12") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;" (assignment_expression "iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4" (identifier "iVar13") (= "=") (binary_expression "iVar13 + *(int *)(iVar22 + 0x2c0) * 4" (identifier "iVar13") (+ "+") (binary_expression "*(int *)(iVar22 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar22 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar22 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2c0)" (( "(") (binary_expression "iVar22 + 0x2c0" (identifier "iVar22") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 < iVar17)" (( "(") (binary_expression "iVar20 < iVar17" (identifier "iVar20") (< "<") (identifier "iVar17")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);" (assignment_expression "iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9)" (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 "(uVar6,uVar9)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x24) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar23 + 0x328) != 0) {\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar23 + 0x328) != 0)" (( "(") (binary_expression "*(int *)(iVar23 + 0x328) != 0" (pointer_expression "*(int *)(iVar23 + 0x328)" (* "*") (cast_expression "(int *)(iVar23 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x328)" (( "(") (binary_expression "iVar23 + 0x328" (identifier "iVar23") (+ "+") (number_literal "0x328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar19 = *(int **)(param_1 + 0x28);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar3 = PTR_GOMP_atomic_end_003a9438;\n            uVar18 = piVar19[1];\n            uVar15 = uVar18 + 1;\n            piVar19[1] = uVar15;\n            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;\n            (*(code *)puVar3)();\n            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);\n            if (iVar11 == 0) goto LAB_001d8a7c;\n          }" ({ "{") (expression_statement "piVar19 = *(int **)(param_1 + 0x28);" (assignment_expression "piVar19 = *(int **)(param_1 + 0x28)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(param_1 + 0x28)" (* "*") (cast_expression "(int **)(param_1 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_GOMP_atomic_start_003a92e4)();" (call_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)()" (parenthesized_expression "(*(code *)PTR_GOMP_atomic_start_003a92e4)" (( "(") (pointer_expression "*(code *)PTR_GOMP_atomic_start_003a92e4" (* "*") (cast_expression "(code *)PTR_GOMP_atomic_start_003a92e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GOMP_atomic_start_003a92e4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar3 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar3 = PTR_GOMP_atomic_end_003a9438" (identifier "puVar3") (= "=") (identifier "PTR_GOMP_atomic_end_003a9438")) (; ";")) (expression_statement "uVar18 = piVar19[1];" (assignment_expression "uVar18 = piVar19[1]" (identifier "uVar18") (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = uVar18 + 1;" (assignment_expression "uVar15 = uVar18 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19[1] = uVar15;" (assignment_expression "piVar19[1] = uVar15" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar15 < uVar18) + *piVar19" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (binary_expression "(uint)(uVar15 < uVar18) + *piVar19" (call_expression "(uint)(uVar15 < uVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar15 < uVar18)" (( "(") (binary_expression "uVar15 < uVar18" (identifier "uVar15") (< "<") (identifier "uVar18")) () ")"))) (+ "+") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (expression_statement "(*(code *)puVar3)();" (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1]);" (assignment_expression "iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" (( "(") (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" (* "*") (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageProgress_003a8cb4"))) () ")")) (argument_list "(iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),\n                                (*(undefined4 **)(param_1 + 0x28))[1])" (( "(") (identifier "iVar23") (, ",") (identifier "puVar7") (, ",") (pointer_expression "**(undefined4 **)(param_1 + 0x28)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (, ",") (subscript_expression "(*(undefined4 **)(param_1 + 0x28))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x28))" (( "(") (pointer_expression "*(undefined4 **)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_001d8a7c;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d8a7c;" (goto "goto") (statement_identifier "LAB_001d8a7c") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != iVar4)" (( "(") (binary_expression "iVar24 != iVar4" (identifier "iVar24") (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void AddNoiseImage._omp_fn.0(anon_struct_48_10_da0cedb5 * param_0) */

void __thiscall function_1(void *this)

{
  double dVar1;
  type_1 *puVar2;
  type_1 *puVar3;
  int var_1;
  int var_4;
  type_2 uVar6;
  type_1 *puVar7;
  type_2 uVar8;
  type_2 uVar9;
  type_2 uVar10;
  int var_15;
  type_2 *var_8;
  int var_9;
  int var_11;
  type_3 var_17;
  int var_13;
  int var_10;
  type_3 var_14;
  int *piVar19;
  int var_16;
  type_2 *var_12;
  int var_7;
  int var_3;
  int var_5;
  
  var_3 = *(int *)((int)this + 8);
  var_1 = (*(type_4 *)PTR_omp_get_num_threads_003a990c)();
  var_4 = (*(type_4 *)PTR_omp_get_thread_num_003a9508)();
  puVar2 = PTR_GenerateDifferentialNoise_003a897c;
  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) {
    var_4 = *(int *)((int)this + 0x20);
    var_7 = *(int *)((int)this + 0x1c);
    uVar6 = *(type_2 *)((int)this + 0x18);
    puVar7 = var_6 + -0x1384;
    uVar8 = *(type_2 *)((int)this + 0x14);
    uVar9 = *(type_2 *)((int)this + 0x10);
    uVar10 = *(type_2 *)((int)this + 0xc);
    do {
      var_15 = (*(type_4 *)PTR_omp_get_thread_num_003a9508)();
      if (*(int *)((int)this + 0x24) != 0) {
        var_8 = (type_2 *)
                  (*(type_4 *)PTR_GetCacheViewVirtualPixels_003a965c)
                            (uVar8,0,var_1,*(type_2 *)(var_3 + 0x18),1,uVar9);
        var_9 = (*(type_4 *)PTR_QueueCacheViewAuthenticPixels_003a8c50)
                           (uVar6,0,var_1,*(type_2 *)(var_7 + 0x18));
        if ((var_8 == (type_2 *)0x0) || (var_9 == 0)) {
LAB_001d8a7c:
          *(type_2 *)((int)this + 0x24) = 0;
        }
        else {
          var_10 = *(int *)(var_3 + 0x18);
          if (0 < var_10) {
            var_16 = 0;
            do {
              var_11 = *(int *)(var_3 + 0x2c0);
              if (0 < var_11) {
                var_10 = 0;
                var_12 = var_8;
                do {
                  while (var_11 = *(int *)(*(int *)(var_3 + 0x2d0) + var_10 * 0xc) * 0xc,
                        *(int *)(*(int *)(var_3 + 0x2d0) + var_11 + 4) == 0) {
LAB_001d8940:
                    var_11 = *(int *)(var_3 + 0x2c0);
                    var_10 = var_10 + 1;
                    var_12 = var_12 + 1;
                    if (var_11 <= var_10) goto LAB_001d89cc;
                  }
                  var_13 = *(int *)(var_7 + 0x2d0) + var_11;
                  var_14 = *(type_3 *)(var_13 + 4);
                  if (var_14 == 0) goto LAB_001d8940;
                  if ((var_14 & 1) == 0) {
                    dVar1 = (double)(*(type_4 *)puVar2)(*(type_2 *)(var_4 + var_15 * 4),*var_12,
                                                      uVar10);
                    var_11 = *(int *)(var_7 + 0x2d0) + var_11;
                    if (*(int *)(var_11 + 4) != 0) {
                      *(float *)(var_9 + *(int *)(var_11 + 8) * 4) = (float)dVar1;
                    }
                    goto LAB_001d8940;
                  }
                  var_10 = var_10 + 1;
                  *(type_2 *)(var_9 + *(int *)(var_13 + 8) * 4) = *var_12;
                  var_11 = *(int *)(var_3 + 0x2c0);
                  var_12 = var_12 + 1;
                } while (var_10 < var_11);
LAB_001d89cc:
                var_10 = *(int *)(var_3 + 0x18);
              }
              var_16 = var_16 + 1;
              var_8 = var_8 + var_11;
              var_9 = var_9 + *(int *)(var_7 + 0x2c0) * 4;
            } while (var_16 < var_10);
          }
          var_15 = (*(type_4 *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);
          if (var_15 == 0) {
            *(type_2 *)((int)this + 0x24) = 0;
          }
          if (*(int *)(var_3 + 0x328) != 0) {
            piVar19 = *(int **)((int)this + 0x28);
            (*(type_4 *)PTR_GOMP_atomic_start_003a92e4)();
            puVar3 = PTR_GOMP_atomic_end_003a9438;
            var_14 = piVar19[1];
            var_17 = var_14 + 1;
            piVar19[1] = var_17;
            *piVar19 = (type_3)(var_17 < var_14) + *piVar19;
            (*(type_4 *)puVar3)();
            var_15 = (*(type_4 *)PTR_SetImageProgress_003a8cb4)
                               (var_3,puVar7,**(type_2 **)((int)this + 0x28),
                                (*(type_2 **)((int)this + 0x28))[1]);
            if (var_15 == 0) goto LAB_001d8a7c;
          }
        }
      }
      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: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) 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: (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)) right: (number_literal))))) right: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) 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: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (return_statement))))

void MASKED(int param_1)

{
  double dVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  int iVar11;
  undefined4 *puVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int *piVar19;
  int iVar20;
  undefined4 *puVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  
  iVar23 = *(int *)(param_1 + 8);
  iVar4 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar5 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar2 = PTR_FUN_003a897c;
  if (iVar4 == 0) {
    trap(7);
  }
  iVar24 = *(int *)(iVar23 + 0x1c) / iVar4;
  iVar4 = *(int *)(iVar23 + 0x1c) % iVar4;
  if (iVar5 < iVar4) {
    iVar24 = iVar24 + 1;
    iVar4 = 0;
  }
  iVar4 = iVar24 * iVar5 + iVar4;
  iVar24 = iVar24 + iVar4;
  if (iVar4 < iVar24) {
    iVar5 = *(int *)(param_1 + 0x20);
    iVar22 = *(int *)(param_1 + 0x1c);
    uVar6 = *(undefined4 *)(param_1 + 0x18);
    puVar7 = PTR_s_courses_003a88ec + -0x1384;
    uVar8 = *(undefined4 *)(param_1 + 0x14);
    uVar9 = *(undefined4 *)(param_1 + 0x10);
    uVar10 = *(undefined4 *)(param_1 + 0xc);
    do {
      iVar11 = (*(code *)PTR_omp_get_thread_num_003a9508)();
      if (*(int *)(param_1 + 0x24) != 0) {
        puVar12 = (undefined4 *)
                  (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                            (uVar8,0,iVar4,*(undefined4 *)(iVar23 + 0x18),1,uVar9);
        iVar13 = (*(code *)PTR_QueueCacheViewAuthenticPixels_003a8c50)
                           (uVar6,0,iVar4,*(undefined4 *)(iVar22 + 0x18));
        if ((puVar12 == (undefined4 *)0x0) || (iVar13 == 0)) {
LAB_001d8a7c:
          *(undefined4 *)(param_1 + 0x24) = 0;
        }
        else {
          iVar17 = *(int *)(iVar23 + 0x18);
          if (0 < iVar17) {
            iVar20 = 0;
            do {
              iVar14 = *(int *)(iVar23 + 0x2c0);
              if (0 < iVar14) {
                iVar17 = 0;
                puVar21 = puVar12;
                do {
                  while (iVar14 = *(int *)(*(int *)(iVar23 + 0x2d0) + iVar17 * 0xc) * 0xc,
                        *(int *)(*(int *)(iVar23 + 0x2d0) + iVar14 + 4) == 0) {
LAB_001d8940:
                    iVar14 = *(int *)(iVar23 + 0x2c0);
                    iVar17 = iVar17 + 1;
                    puVar21 = puVar21 + 1;
                    if (iVar14 <= iVar17) goto LAB_001d89cc;
                  }
                  iVar16 = *(int *)(iVar22 + 0x2d0) + iVar14;
                  uVar18 = *(uint *)(iVar16 + 4);
                  if (uVar18 == 0) goto LAB_001d8940;
                  if ((uVar18 & 1) == 0) {
                    dVar1 = (double)(*(code *)puVar2)(*(undefined4 *)(iVar5 + iVar11 * 4),*puVar21,
                                                      uVar10);
                    iVar14 = *(int *)(iVar22 + 0x2d0) + iVar14;
                    if (*(int *)(iVar14 + 4) != 0) {
                      *(float *)(iVar13 + *(int *)(iVar14 + 8) * 4) = (float)dVar1;
                    }
                    goto LAB_001d8940;
                  }
                  iVar17 = iVar17 + 1;
                  *(undefined4 *)(iVar13 + *(int *)(iVar16 + 8) * 4) = *puVar21;
                  iVar14 = *(int *)(iVar23 + 0x2c0);
                  puVar21 = puVar21 + 1;
                } while (iVar17 < iVar14);
LAB_001d89cc:
                iVar17 = *(int *)(iVar23 + 0x18);
              }
              iVar20 = iVar20 + 1;
              puVar12 = puVar12 + iVar14;
              iVar13 = iVar13 + *(int *)(iVar22 + 0x2c0) * 4;
            } while (iVar20 < iVar17);
          }
          iVar11 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar6,uVar9);
          if (iVar11 == 0) {
            *(undefined4 *)(param_1 + 0x24) = 0;
          }
          if (*(int *)(iVar23 + 0x328) != 0) {
            piVar19 = *(int **)(param_1 + 0x28);
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar3 = PTR_GOMP_atomic_end_003a9438;
            uVar18 = piVar19[1];
            uVar15 = uVar18 + 1;
            piVar19[1] = uVar15;
            *piVar19 = (uint)(uVar15 < uVar18) + *piVar19;
            (*(code *)puVar3)();
            iVar11 = (*(code *)PTR_SetImageProgress_003a8cb4)
                               (iVar23,puVar7,**(undefined4 **)(param_1 + 0x28),
                                (*(undefined4 **)(param_1 + 0x28))[1]);
            if (iVar11 == 0) goto LAB_001d8a7c;
          }
        }
      }
      iVar4 = iVar4 + 1;
    } while (iVar24 != iVar4);
  }
  return;
}

