
/* WARNING: Removing unreachable block (ram,0x001d944c) */
/* WARNING: Removing unreachable block (ram,0x001d91e0) */
/* WARNING: Removing unreachable block (ram,0x001d91ec) */
/* WARNING: Removing unreachable block (ram,0x001d91f8) */
/* WARNING: Removing unreachable block (ram,0x001d9204) */
/* DWARF original prototype: void ColorMatrixImage._omp_fn.3(anon_struct_36_9_58c4ea65 * param_0) */

void __thiscall ColorMatrixImage__omp_fn_3(void *this)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  ulonglong *puVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 *puVar14;
  double *pdVar15;
  int iVar16;
  double *pdVar17;
  ulonglong *puVar18;
  int iVar19;
  undefined4 *puVar20;
  int iVar21;
  int *piVar22;
  int *piVar23;
  undefined4 uVar24;
  int iVar25;
  ulonglong *puVar26;
  undefined4 uVar27;
  undefined *puVar28;
  code *pcVar29;
  int iVar30;
  float fVar34;
  ulonglong uVar31;
  double dVar32;
  undefined8 uVar33;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  int iVar46;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0;
  ulonglong local_a8;
  undefined4 local_a0;
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  int local_5c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
                    /* WARNING: Load size is inaccurate */
  puVar26 = *this;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar28 = PTR_LAB_003a88e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;
  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar46 = iVar46 + 1;
    iVar3 = 0;
  }
  puVar18 = (ulonglong *)(iVar46 * iVar4);
  iVar3 = (int)puVar18 + iVar3;
  iVar46 = iVar46 + iVar3;
  if (iVar3 < iVar46) {
    iVar30 = *(int *)((int)this + 0x18);
    iVar4 = *(int *)((int)this + 4);
    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
    uVar5 = *(undefined4 *)((int)this + 0x10);
    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
    puVar6 = *(ulonglong **)((int)this + 0xc);
    uVar7 = *(undefined4 *)((int)this + 8);
    do {
      if (*(int *)((int)this + 0x1c) != 0) {
        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);
        puVar18 = puVar6;
        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);
        if ((iVar8 == 0) || (iVar9 == 0)) {
LAB_001d9360:
          *(undefined4 *)((int)this + 0x1c) = 0;
        }
        else {
          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);
          puVar1 = PTR_s_courses_003a88ec;
          if (0 < *(int *)(puVar26 + 3)) {
            iVar25 = 0;
            do {
              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);
              local_a8 = puVar26[0x49];
              local_b8 = *(undefined4 *)puVar26;
              local_b4 = (undefined4)*puVar26;
              local_a0 = *(undefined4 *)(puVar26 + 4);
              local_b0 = *(int *)((int)puVar26 + 700);
              local_70 = dVar43;
              if (iVar8 != 0) {
                iVar10 = *(int *)(puVar26 + 0x5a);
                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);
                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);
                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);
                if (*(int *)(iVar10 + 0x28) != 0) {
                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  local_b0 = 4;
                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);
                }
                if (*(int *)(iVar10 + 0x40) != 0) {
                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);
                }
              }
              uVar11 = *(uint *)(iVar4 + 8);
              uVar12 = 6;
              if (uVar11 < 7) {
                uVar12 = uVar11;
              }
              if (uVar12 != 0) {
                uVar11 = 0;
                do {
                  if (uVar11 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */
                    /* WARNING: Treating indirect jump as call */
                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))
                              (*(undefined8 *)(puVar28 + 0x1a58));
                    return;
                  }
                  uVar11 = uVar11 + 1;
                } while (uVar11 != uVar12);
              }
              iVar10 = *(int *)(iVar30 + 0x2d0);
              iVar19 = *(int *)(iVar10 + 0x14);
              iVar16 = *(int *)(iVar10 + 0x20);
              iVar21 = *(int *)(iVar10 + 0x28);
              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;
              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;
              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;
              if (iVar21 != 0) {
                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;
              }
              if (*(int *)(iVar10 + 0x34) != 0) {
                fVar34 = (float)uVar31;
                if (local_b0 != 0) {
                  fVar34 = (float)local_70;
                }
                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;
              }
              iVar25 = iVar25 + 1;
              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;
              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;
            } while (iVar25 < *(int *)(puVar26 + 3));
          }
          puVar18 = puVar6;
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);
          if (iVar8 == 0) {
            *(undefined4 *)((int)this + 0x1c) = 0;
          }
          if (*(int *)(puVar26 + 0x65) != 0) {
            piVar23 = *(int **)((int)this + 0x20);
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar1 = PTR_GOMP_atomic_end_003a9438;
            uVar12 = piVar23[1];
            uVar11 = uVar12 + 1;
            piVar23[1] = uVar11;
            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;
            (*(code *)puVar1)();
            puVar18 = puVar26;
            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)
                              (puVar26,PTR_s_courses_003a88ec + -0x1364,
                               **(undefined4 **)((int)this + 0x20),
                               (*(undefined4 **)((int)this + 0x20))[1],0,
                               *(undefined4 *)((int)puVar26 + 0x1c));
            if (iVar8 == 0) goto LAB_001d9360;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar46 != iVar3);
  }
  if (local_5c == *(int *)puVar2) {
    return;
  }
  puVar28 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  iVar46 = *(int *)((int)puVar18 + 0x24);
  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();
  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;
  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar30 = iVar30 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar30 * iVar4 + iVar3;
  iVar30 = iVar30 + iVar3;
  if (iVar3 < iVar30) {
    uVar31 = *puVar18;
    dVar44 = (double)puVar18[1];
    iVar8 = *(int *)(puVar18 + 5);
    uVar27 = *(undefined4 *)(puVar18 + 4);
    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);
    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);
    iVar4 = *(int *)(puVar28 + 0x1cf48c);
    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);
    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);
    uVar7 = *(undefined4 *)(puVar18 + 3);
    uVar13 = *(undefined4 *)(puVar18 + 2);
    do {
      if (*(int *)((int)puVar18 + 0x34) != 0) {
        puVar14 = (undefined4 *)
                  (**(code **)(puVar28 + 0x1d01fc))
                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);
        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))
                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);
        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {
LAB_001d97e0:
          *(undefined4 *)((int)puVar18 + 0x34) = 0;
        }
        else {
          pdVar15 = *(double **)((int)puVar18 + 0x2c);
          pdVar17 = *(double **)(puVar18 + 6);
          iVar25 = *(int *)(iVar46 + 0x18);
          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];
          if (0 < iVar25) {
            iVar10 = 0;
            dVar41 = dVar38 * dVar38;
            dVar40 = dVar44 * dVar44;
            dVar42 = 0.0;
            do {
              dVar36 = *pdVar15;
              dVar35 = *pdVar17;
              dVar45 = ((double)iVar10 - dVar36) * dVar35;
              dVar37 = dVar45 * dVar45 + dVar41;
              if (dVar40 <= dVar37) {
                iVar16 = *(int *)(iVar46 + 0x2c0);
                if (iVar16 < 1) goto LAB_001d9670;
                piVar22 = *(int **)(iVar46 + 0x2d0);
                iVar19 = *(int *)(iVar8 + 0x2d0);
                piVar23 = piVar22;
                puVar20 = puVar14;
                do {
                  iVar21 = iVar19 + *piVar23 * 0xc;
                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {
                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;
                  }
                  piVar23 = piVar23 + 3;
                  puVar20 = puVar20 + 1;
                } while (piVar23 != piVar22 + iVar16 * 3);
                iVar16 = iVar16 << 2;
                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;
                if (iVar25 <= iVar10 + 1) break;
              }
              else {
                dVar39 = dVar38;
                if (dVar42 < dVar37) {
                  if (dVar37 < dVar42) {
                    (**(code **)(puVar28 + 0x1d0020))();
                    dVar39 = dVar38;
                  }
                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))
                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);
                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))
                                             (uVar33,uVar31 ^ 0x8000000000000000);
                  pdVar17 = *(double **)(puVar18 + 6);
                  dVar45 = dVar45 * dVar38;
                  pdVar15 = *(double **)((int)puVar18 + 0x2c);
                  dVar35 = *pdVar17;
                  dVar38 = dVar39 * dVar38;
                  dVar36 = *pdVar15;
                }
                iVar25 = (**(code **)(puVar28 + 0x1d0088))
                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,
                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);
                *(int *)((int)puVar18 + 0x34) = iVar25;
                if (iVar25 == 0) break;
                iVar16 = *(int *)(iVar46 + 0x2c0);
                iVar25 = *(int *)(iVar46 + 0x18);
                dVar38 = dVar39;
LAB_001d9670:
                iVar16 = iVar16 * 4;
                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;
                if (iVar25 <= iVar10 + 1) break;
              }
              iVar9 = iVar9 + iVar19;
              iVar10 = iVar10 + 1;
              puVar14 = (undefined4 *)((int)puVar14 + iVar16);
              pdVar17 = *(double **)(puVar18 + 6);
              pdVar15 = *(double **)((int)puVar18 + 0x2c);
            } while( true );
          }
          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);
          if (iVar9 == 0) {
            *(undefined4 *)((int)puVar18 + 0x34) = 0;
          }
          if (*(int *)(iVar46 + 0x328) != 0) {
            piVar23 = *(int **)(puVar18 + 7);
            (**(code **)(puVar28 + 0x1cfe84))();
            uVar12 = piVar23[1];
            uVar11 = uVar12 + 1;
            pcVar29 = *(code **)(puVar28 + 0x1cffd8);
            piVar23[1] = uVar11;
            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;
            (*pcVar29)();
            iVar9 = (**(code **)(puVar28 + 0x1cf854))
                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),
                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));
            if (iVar9 == 0) goto LAB_001d97e0;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar30 != iVar3);
  }
  return;
}



/* WARNING: Removing unreachable block (ram,0x001d944c) */
/* WARNING: Removing unreachable block (ram,0x001d91e0) */
/* WARNING: Removing unreachable block (ram,0x001d91ec) */
/* WARNING: Removing unreachable block (ram,0x001d91f8) */
/* WARNING: Removing unreachable block (ram,0x001d9204) */

void FUN_001d8e14(undefined4 *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  ulonglong *puVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  double *pdVar14;
  uint uVar15;
  int iVar16;
  double *pdVar17;
  ulonglong *puVar18;
  int iVar19;
  undefined4 *puVar20;
  int iVar21;
  int *piVar22;
  int *piVar23;
  undefined4 uVar24;
  int iVar25;
  ulonglong *puVar26;
  undefined4 uVar27;
  undefined *puVar28;
  code *pcVar29;
  int iVar30;
  float fVar34;
  ulonglong uVar31;
  double dVar32;
  undefined8 uVar33;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  int iVar46;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0;
  ulonglong local_a8;
  undefined4 local_a0;
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  int local_5c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar26 = (ulonglong *)*param_1;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar28 = PTR_LAB_003a88e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;
  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar46 = iVar46 + 1;
    iVar3 = 0;
  }
  puVar18 = (ulonglong *)(iVar46 * iVar4);
  iVar3 = (int)puVar18 + iVar3;
  iVar46 = iVar46 + iVar3;
  if (iVar3 < iVar46) {
    iVar30 = param_1[6];
    iVar4 = param_1[1];
    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
    uVar5 = param_1[4];
    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
    puVar6 = (ulonglong *)param_1[3];
    uVar7 = param_1[2];
    do {
      if (param_1[7] != 0) {
        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);
        puVar18 = puVar6;
        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);
        if ((iVar8 == 0) || (iVar9 == 0)) {
LAB_001d9360:
          param_1[7] = 0;
        }
        else {
          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);
          puVar1 = PTR_s_courses_003a88ec;
          if (0 < *(int *)(puVar26 + 3)) {
            iVar25 = 0;
            do {
              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);
              local_a8 = puVar26[0x49];
              local_b8 = *(undefined4 *)puVar26;
              local_b4 = (undefined4)*puVar26;
              local_a0 = *(undefined4 *)(puVar26 + 4);
              local_b0 = *(int *)((int)puVar26 + 700);
              local_70 = dVar43;
              if (iVar8 != 0) {
                iVar10 = *(int *)(puVar26 + 0x5a);
                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);
                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);
                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);
                if (*(int *)(iVar10 + 0x28) != 0) {
                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  local_b0 = 4;
                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);
                }
                if (*(int *)(iVar10 + 0x40) != 0) {
                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);
                }
              }
              uVar11 = 6;
              if (*(uint *)(iVar4 + 8) < 7) {
                uVar11 = *(uint *)(iVar4 + 8);
              }
              if (uVar11 != 0) {
                uVar15 = 0;
                do {
                  if (uVar15 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */
                    /* WARNING: Treating indirect jump as call */
                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))
                              (*(undefined8 *)(puVar28 + 0x1a58));
                    return;
                  }
                  uVar15 = uVar15 + 1;
                } while (uVar15 != uVar11);
              }
              iVar10 = *(int *)(iVar30 + 0x2d0);
              iVar19 = *(int *)(iVar10 + 0x14);
              iVar16 = *(int *)(iVar10 + 0x20);
              iVar21 = *(int *)(iVar10 + 0x28);
              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;
              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;
              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;
              if (iVar21 != 0) {
                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;
              }
              if (*(int *)(iVar10 + 0x34) != 0) {
                fVar34 = (float)uVar31;
                if (local_b0 != 0) {
                  fVar34 = (float)local_70;
                }
                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;
              }
              iVar25 = iVar25 + 1;
              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;
              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;
            } while (iVar25 < *(int *)(puVar26 + 3));
          }
          puVar18 = puVar6;
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);
          if (iVar8 == 0) {
            param_1[7] = 0;
          }
          if (*(int *)(puVar26 + 0x65) != 0) {
            piVar23 = (int *)param_1[8];
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar1 = PTR_GOMP_atomic_end_003a9438;
            uVar11 = piVar23[1];
            uVar15 = uVar11 + 1;
            piVar23[1] = uVar15;
            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;
            (*(code *)puVar1)();
            puVar18 = puVar26;
            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)
                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],
                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))
            ;
            if (iVar8 == 0) goto LAB_001d9360;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar46 != iVar3);
  }
  if (local_5c == *(int *)puVar2) {
    return;
  }
  puVar28 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  iVar46 = *(int *)((int)puVar18 + 0x24);
  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();
  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;
  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar30 = iVar30 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar30 * iVar4 + iVar3;
  iVar30 = iVar30 + iVar3;
  if (iVar3 < iVar30) {
    uVar31 = *puVar18;
    dVar44 = (double)puVar18[1];
    iVar8 = *(int *)(puVar18 + 5);
    uVar27 = *(undefined4 *)(puVar18 + 4);
    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);
    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);
    iVar4 = *(int *)(puVar28 + 0x1cf48c);
    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);
    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);
    uVar7 = *(undefined4 *)(puVar18 + 3);
    uVar12 = *(undefined4 *)(puVar18 + 2);
    do {
      if (*(int *)((int)puVar18 + 0x34) != 0) {
        puVar13 = (undefined4 *)
                  (**(code **)(puVar28 + 0x1d01fc))
                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);
        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))
                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);
        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {
LAB_001d97e0:
          *(undefined4 *)((int)puVar18 + 0x34) = 0;
        }
        else {
          pdVar14 = *(double **)((int)puVar18 + 0x2c);
          pdVar17 = *(double **)(puVar18 + 6);
          iVar25 = *(int *)(iVar46 + 0x18);
          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];
          if (0 < iVar25) {
            iVar10 = 0;
            dVar41 = dVar38 * dVar38;
            dVar40 = dVar44 * dVar44;
            dVar42 = 0.0;
            do {
              dVar36 = *pdVar14;
              dVar35 = *pdVar17;
              dVar45 = ((double)iVar10 - dVar36) * dVar35;
              dVar37 = dVar45 * dVar45 + dVar41;
              if (dVar40 <= dVar37) {
                iVar16 = *(int *)(iVar46 + 0x2c0);
                if (iVar16 < 1) goto LAB_001d9670;
                piVar22 = *(int **)(iVar46 + 0x2d0);
                iVar19 = *(int *)(iVar8 + 0x2d0);
                piVar23 = piVar22;
                puVar20 = puVar13;
                do {
                  iVar21 = iVar19 + *piVar23 * 0xc;
                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {
                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;
                  }
                  piVar23 = piVar23 + 3;
                  puVar20 = puVar20 + 1;
                } while (piVar23 != piVar22 + iVar16 * 3);
                iVar16 = iVar16 << 2;
                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;
                if (iVar25 <= iVar10 + 1) break;
              }
              else {
                dVar39 = dVar38;
                if (dVar42 < dVar37) {
                  if (dVar37 < dVar42) {
                    (**(code **)(puVar28 + 0x1d0020))();
                    dVar39 = dVar38;
                  }
                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))
                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);
                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))
                                             (uVar33,uVar31 ^ 0x8000000000000000);
                  pdVar17 = *(double **)(puVar18 + 6);
                  dVar45 = dVar45 * dVar38;
                  pdVar14 = *(double **)((int)puVar18 + 0x2c);
                  dVar35 = *pdVar17;
                  dVar38 = dVar39 * dVar38;
                  dVar36 = *pdVar14;
                }
                iVar25 = (**(code **)(puVar28 + 0x1d0088))
                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,
                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);
                *(int *)((int)puVar18 + 0x34) = iVar25;
                if (iVar25 == 0) break;
                iVar16 = *(int *)(iVar46 + 0x2c0);
                iVar25 = *(int *)(iVar46 + 0x18);
                dVar38 = dVar39;
LAB_001d9670:
                iVar16 = iVar16 * 4;
                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;
                if (iVar25 <= iVar10 + 1) break;
              }
              iVar9 = iVar9 + iVar19;
              iVar10 = iVar10 + 1;
              puVar13 = (undefined4 *)((int)puVar13 + iVar16);
              pdVar17 = *(double **)(puVar18 + 6);
              pdVar14 = *(double **)((int)puVar18 + 0x2c);
            } while( true );
          }
          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);
          if (iVar9 == 0) {
            *(undefined4 *)((int)puVar18 + 0x34) = 0;
          }
          if (*(int *)(iVar46 + 0x328) != 0) {
            piVar23 = *(int **)(puVar18 + 7);
            (**(code **)(puVar28 + 0x1cfe84))();
            uVar11 = piVar23[1];
            uVar15 = uVar11 + 1;
            pcVar29 = *(code **)(puVar28 + 0x1cffd8);
            piVar23[1] = uVar15;
            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;
            (*pcVar29)();
            iVar9 = (**(code **)(puVar28 + 0x1cf854))
                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),
                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));
            if (iVar9 == 0) goto LAB_001d97e0;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar30 != iVar3);
  }
  return;
}


lui gp,0x1d
addiu gp,gp,0x7a9c
addu gp,gp,t9
lw v0,-0x7680(gp)
addiu sp,sp,-0xf8
lw t9,-0x6fa4(gp)
sdc1 f30,0xf0(sp)
sw v0,0x34(sp)
sw gp,0x18(sp)
sw ra,0xc4(sp)
sw s7,0xbc(sp)
sw s6,0xb8(sp)
or s6,a0,zero
sw s5,0xb4(sp)
sw s8,0xc0(sp)
sw s4,0xb0(sp)
sw s3,0xac(sp)
sw s2,0xa8(sp)
sw s1,0xa4(sp)
sw s0,0xa0(sp)
lw v0,0x0(v0)
sdc1 f28,0xe8(sp)
lw s5,0x0(a0)
sdc1 f26,0xe0(sp)
sw v0,0x9c(sp)
sdc1 f24,0xd8(sp)
sdc1 f22,0xd0(sp)
jalr t9
_sdc1 f20,0xc8(sp)
lw gp,0x18(sp)
lw t9,-0x73a8(gp)
jalr t9
_or s7,v0,zero
lw v1,0x1c(s5)
lw gp,0x18(sp)
teq s7,zero
div v1,s7
mfhi s7
slt a0,v0,s7
beq a0,zero,0x001d8ec0
_mflo v1
addiu v1,v1,0x1
or s7,zero,zero
mul a0,v1,v0
addu s7,a0,s7
addu v0,v1,s7
sw v0,0x20(sp)
slt v0,s7,v0
beq v0,zero,0x001d9374
_lw v0,-0x7fd0(gp)
lw s8,0x18(s6)
lw s4,0x4(s6)
ldc1 f28,0x1a58(v0)
sw v0,0x24(sp)
lw v0,0x10(s6)
sw v0,0x30(sp)
lw v0,-0x7fd0(gp)
mov.D f26,f28
lwc1 f30,0x1a50(v0)
lw v0,0xc(s6)
sw v0,0x28(sp)
lw v0,0x8(s6)
sw v0,0x2c(sp)
lw v0,0x1c(s6)
beq v0,zero,0x001d9368
_lw v0,0x20(sp)
lw s1,0x2c(sp)
li s0,0x1
lw a3,0x18(s5)
or a1,zero,zero
lw t9,-0x7254(gp)
or a2,s7,zero
lw a0,0x30(sp)
sw s1,0x14(sp)
jalr t9
_sw s0,0x10(sp)
or a1,zero,zero
lw gp,0x18(sp)
or a2,s7,zero
lw a3,0x18(s8)
or s2,v0,zero
lw a0,0x28(sp)
sw s1,0x14(sp)
lw t9,-0x7264(gp)
jalr t9
_sw s0,0x10(sp)
lw gp,0x18(sp)
beq s2,zero,0x001d9360
_or s3,v0,zero
beq v0,zero,0x001d9360
_addiu v0,sp,0x40
lw t9,-0x75fc(gp)
or a0,s5,zero
sw v0,0x38(sp)
jalr t9
_or a1,v0,zero
lw v0,0x18(s5)
blez v0,0x001d92d0
_lw gp,0x18(sp)
or s0,zero,zero
lw t1,-0x7fc4(gp)
sw s7,0x3c(sp)
or s7,s4,zero
or s4,s0,zero
lw s0,0x38(sp)
addiu s1,t1,-0x1120
lw t9,-0x78bc(gp)
li a2,0x58
or a1,zero,zero
jalr t9
_or a0,s0,zero
ldc1 f0,0x248(s5)
lw v1,0x0(s5)
lw a3,0x4(s5)
lw v0,0x20(s5)
lw t0,0x2bc(s5)
lw gp,0x18(sp)
sdc1 f28,0x88(sp)
sw v1,0x40(sp)
sw a3,0x44(sp)
sdc1 f0,0x50(sp)
sw v0,0x58(sp)
beq s2,zero,0x001d943c
_sw t0,0x48(sp)
lw v0,0x2d0(s5)
lw a1,0x8(v0)
lw a0,0x14(v0)
lw v1,0x20(v0)
sll a1,a1,0x2
lw a2,0x28(v0)
sll a0,a0,0x2
sll v1,v1,0x2
addu a1,s2,a1
addu a0,s2,a0
addu v1,s2,v1
lwc1 f18,0x0(a1)
lwc1 f16,0x0(a0)
lwc1 f14,0x0(v1)
cvt.d.S f18,f18
cvt.d.S f16,f16
cvt.d.S f14,f14
sdc1 f18,0x68(sp)
sdc1 f16,0x70(sp)
beq a2,zero,0x001d9070
_sdc1 f14,0x78(sp)
lw v1,0x2c(v0)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0x80(sp)
lw v1,0x34(v0)
beq v1,zero,0x001d909c
_nop
lw v1,0x38(v0)
sll v1,v1,0x2
addu v1,s2,v1
lwc1 f0,0x0(v1)
li v1,0x4
sw v1,0x48(sp)
cvt.d.S f0,f0
sdc1 f0,0x88(sp)
lw v1,0x40(v0)
beq v1,zero,0x001d90c0
_nop
lw v0,0x44(v0)
sll v0,v0,0x2
addu v0,s2,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
sdc1 f0,0x90(sp)
lw v0,0x8(s7)
li v1,0x6
sltiu a2,v0,0x7
movn v1,v0,a2
beq v1,zero,0x001d9214
_or a2,v1,zero
lw a1,0x2d0(s5)
mov.D f20,f18
or t4,zero,zero
lw t1,0x24(sp)
or t5,zero,zero
ldc1 f22,0x88(sp)
or t6,zero,zero
lw v0,0x14(s6)
or t7,zero,zero
lw t9,0x8(a1)
or t3,zero,zero
lw t8,0x14(a1)
or v1,zero,zero
lw a0,0x20(a1)
li t2,0x2
sll t9,t9,0x2
ldc1 f24,0x80(sp)
sll t8,t8,0x2
sll a0,a0,0x2
ldc1 f12,0x1a58(t1)
addu t9,s2,t9
addu t8,s2,t8
addu a0,s2,a0
lwc1 f10,0x0(t9)
lwc1 f8,0x0(t8)
lwc1 f6,0x0(a0)
cvt.d.S f10,f10
cvt.d.S f8,f8
cvt.d.S f6,f6
ldc1 f0,0x8(v0)
ldc1 f4,0x0(v0)
ldc1 f2,0x10(v0)
mul.D f0,f8,f0
madd.D f0,f0,f10,f4
beq a3,t2,0x001d93fc
_madd.D f2,f0,f6,f2
beq t0,zero,0x001d9194
_nop
lw a0,0x34(a1)
beq a0,zero,0x001d9424
_ldc1 f4,0x20(v0)
lw a0,0x38(a1)
sll a0,a0,0x2
addu a0,s2,a0
lwc1 f0,0x0(a0)
cvt.d.S f0,f0
madd.D f2,f2,f4,f0
ldc1 f0,0x28(v0)
sltiu a0,v1,0x5
beq a0,zero,0x001d91c4
_madd.D f2,f2,f0,f12
sll a0,v1,0x2
addu a0,s1,a0
lw a0,0x0(a0)
addu a0,a0,gp
jr a0
_nop
mov.D f24,f2
li t7,0x1
addiu v1,v1,0x1
bne v1,a2,0x001d914c
_addiu v0,v0,0x30
bne t3,zero,0x001d944c
_nop
beq t7,zero,0x001d91e4
_nop
sdc1 f24,0x80(sp)
beq t6,zero,0x001d91f0
_nop
sdc1 f14,0x78(sp)
beq t5,zero,0x001d91fc
_nop
sdc1 f16,0x70(sp)
beq t4,zero,0x001d9210
_ldc1 f16,0x70(sp)
mov.D f18,f20
sdc1 f20,0x68(sp)
ldc1 f16,0x70(sp)
ldc1 f14,0x78(sp)
lw v0,0x2d0(s8)
cvt.s.D f18,f18
cvt.s.D f16,f16
cvt.s.D f14,f14
lw a1,0x8(v0)
lw a0,0x14(v0)
lw v1,0x20(v0)
sll a1,a1,0x2
lw a2,0x28(v0)
sll a0,a0,0x2
sll v1,v1,0x2
addu a1,s3,a1
addu a0,s3,a0
addu v1,s3,v1
swc1 f18,0x0(a1)
swc1 f16,0x0(a0)
beq a2,zero,0x001d9274
_swc1 f14,0x0(v1)
ldc1 f0,0x80(sp)
lw v1,0x2c(v0)
sll v1,v1,0x2
addu v1,s3,v1
cvt.s.D f0,f0
swc1 f0,0x0(v1)
lw v1,0x34(v0)
beq v1,zero,0x001d92a0
_lw v1,0x48(sp)
beq v1,zero,0x001d9290
_mov.S f0,f30
ldc1 f0,0x88(sp)
cvt.s.D f0,f0
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s3,v0
swc1 f0,0x0(v0)
lw a0,0x2c0(s5)
addiu s4,s4,0x1
lw v1,0x2c0(s8)
lw v0,0x18(s5)
sll a0,a0,0x2
sll v1,v1,0x2
slt v0,s4,v0
addu s2,s2,a0
bne v0,zero,0x001d8fbc
_addu s3,s3,v1
or s4,s7,zero
lw s7,0x3c(sp)
lw t9,-0x73b8(gp)
lw a1,0x2c(sp)
jalr t9
_lw a0,0x28(sp)
bne v0,zero,0x001d92ec
_lw gp,0x18(sp)
sw zero,0x1c(s6)
lw v0,0x328(s5)
beq v0,zero,0x001d9364
_lw t9,-0x75cc(gp)
jalr t9
_lw s0,0x20(s6)
lw v0,0x4(s0)
lw gp,0x18(sp)
lw a0,0x0(s0)
addiu v1,v0,0x1
sltu v0,v1,v0
lw t9,-0x7478(gp)
addu v0,v0,a0
sw v1,0x4(s0)
jalr t9
_sw v0,0x0(s0)
or a0,s5,zero
lw gp,0x18(sp)
lw v1,0x20(s6)
lw v0,0x1c(s5)
lw a1,-0x7fc4(gp)
lw t9,-0x7bfc(gp)
lw a3,0x4(v1)
lw a2,0x0(v1)
addiu a1,a1,-0x1364
sw v0,0x14(sp)
jalr t9
_sw zero,0x10(sp)
bne v0,zero,0x001d9364
_lw gp,0x18(sp)
sw zero,0x1c(s6)
lw v0,0x20(sp)
addiu s7,s7,0x1
bne v0,s7,0x001d8f10
_nop
lw v0,0x34(sp)
lw v1,0x9c(sp)
lw v0,0x0(v0)
bne v1,v0,0x001d9454
_lw ra,0xc4(sp)
lw s8,0xc0(sp)
lw s7,0xbc(sp)
lw s6,0xb8(sp)
lw s5,0xb4(sp)
lw s4,0xb0(sp)
lw s3,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
ldc1 f30,0xf0(sp)
ldc1 f28,0xe8(sp)
ldc1 f26,0xe0(sp)
ldc1 f24,0xd8(sp)
ldc1 f22,0xd0(sp)
ldc1 f20,0xc8(sp)
jr ra
_addiu sp,sp,0xf8
mov.D f14,f2
b 0x001d91c4
_li t6,0x1
mov.D f16,f2
b 0x001d91c4
_li t5,0x1
mov.D f22,f2
b 0x001d91c4
_li t3,0x1
mov.D f20,f2
b 0x001d91c4
_li t4,0x1
lw a0,0x28(a1)
beq a0,zero,0x001d942c
_ldc1 f4,0x18(v0)
lw a0,0x2c(a1)
sll a0,a0,0x2
addu a0,s2,a0
lwc1 f0,0x0(a0)
cvt.d.S f0,f0
b 0x001d9168
_madd.D f2,f2,f4,f0
b 0x001d9190
_mov.D f0,f26
mtc1 zero,f0
mthc1 zero,f0
b 0x001d9168
_madd.D f2,f2,f4,f0
ldc1 f14,0x78(sp)
ldc1 f18,0x68(sp)
b 0x001d90c0
_ldc1 f16,0x70(sp)
b 0x001d91d8
_sdc1 f22,0x88(sp)
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x001d944c) */\n/* WARNING: Removing unreachable block (ram,0x001d91e0) */\n/* WARNING: Removing unreachable block (ram,0x001d91ec) */\n/* WARNING: Removing unreachable block (ram,0x001d91f8) */\n/* WARNING: Removing unreachable block (ram,0x001d9204) */\n\nvoid FUN_001d8e14(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}\n\n" comment comment comment comment comment (function_definition "void FUN_001d8e14(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001d8e14(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "ulonglong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "double *pdVar14;" primitive_type (pointer_declarator "*pdVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "ulonglong *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "ulonglong *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined4 local_b4;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "ulonglong local_a8;" type_identifier identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar26 = (ulonglong *)*param_1;" (assignment_expression "puVar26 = (ulonglong *)*param_1" identifier = (cast_expression "(ulonglong *)*param_1" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(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 "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(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 "puVar28 = PTR_LAB_003a88e0;" (assignment_expression "puVar28 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;" (assignment_expression "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) / iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) % iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "puVar18 = (ulonglong *)(iVar46 * iVar4);" (assignment_expression "puVar18 = (ulonglong *)(iVar46 * iVar4)" identifier = (cast_expression "(ulonglong *)(iVar46 * iVar4)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 * iVar4)" ( (binary_expression "iVar46 * iVar4" identifier * identifier) )))) ;) (expression_statement "iVar3 = (int)puVar18 + iVar3;" (assignment_expression "iVar3 = (int)puVar18 + iVar3" identifier = (binary_expression "(int)puVar18 + iVar3" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar46 = iVar46 + iVar3;" (assignment_expression "iVar46 = iVar46 + iVar3" identifier = (binary_expression "iVar46 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar46)" ( (binary_expression "iVar3 < iVar46" identifier < identifier) )) (compound_statement "{\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" { (expression_statement "iVar30 = param_1[6];" (assignment_expression "iVar30 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[1];" (assignment_expression "iVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = param_1[4];" (assignment_expression "uVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (ulonglong *)param_1[3];" (assignment_expression "puVar6 = (ulonglong *)param_1[3]" identifier = (cast_expression "(ulonglong *)param_1[3]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = param_1[2];" (assignment_expression "uVar7 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);" do (compound_statement "{\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" { (expression_statement "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (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 "(uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar26 + 3)" * (cast_expression "(undefined4 *)(puVar26 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar30 + 0x18)" * (cast_expression "(undefined4 *)(iVar30 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x18)" ( (binary_expression "iVar30 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" if (parenthesized_expression "((iVar8 == 0) || (iVar9 == 0))" ( (binary_expression "(iVar8 == 0) || (iVar9 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d9360:\n          param_1[7] = 0;\n        }" { (labeled_statement "LAB_001d9360:\n          param_1[7] = 0;" statement_identifier : (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" else (compound_statement "{\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" { (expression_statement "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);" (call_expression "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8)" (parenthesized_expression "(*(code *)PTR_GetPixelInfo_003a92b4)" ( (pointer_expression "*(code *)PTR_GetPixelInfo_003a92b4" * (cast_expression "(code *)PTR_GetPixelInfo_003a92b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar26,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "puVar1 = PTR_s_courses_003a88ec;" (assignment_expression "puVar1 = PTR_s_courses_003a88ec" identifier = identifier) ;) (if_statement "if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(puVar26 + 3))" ( (binary_expression "0 < *(int *)(puVar26 + 3)" number_literal < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));" do (compound_statement "{\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            }" { (expression_statement "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003a8ff4" * (cast_expression "(code *)PTR_ResetMagickMemory_003a8ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b8,0,0x58)" ( (pointer_expression "&local_b8" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_a8 = puVar26[0x49];" (assignment_expression "local_a8 = puVar26[0x49]" identifier = (subscript_expression "puVar26[0x49]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = *(undefined4 *)puVar26;" (assignment_expression "local_b8 = *(undefined4 *)puVar26" identifier = (pointer_expression "*(undefined4 *)puVar26" * (cast_expression "(undefined4 *)puVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_b4 = (undefined4)*puVar26;" (assignment_expression "local_b4 = (undefined4)*puVar26" identifier = (binary_expression "(undefined4)*puVar26" (parenthesized_expression "(undefined4)" ( identifier )) * identifier)) ;) (expression_statement "local_a0 = *(undefined4 *)(puVar26 + 4);" (assignment_expression "local_a0 = *(undefined4 *)(puVar26 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar26 + 4)" * (cast_expression "(undefined4 *)(puVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 4)" ( (binary_expression "puVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(int *)((int)puVar26 + 700);" (assignment_expression "local_b0 = *(int *)((int)puVar26 + 700)" identifier = (pointer_expression "*(int *)((int)puVar26 + 700)" * (cast_expression "(int *)((int)puVar26 + 700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 700)" ( (binary_expression "(int)puVar26 + 700" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_70 = dVar43;" (assignment_expression "local_70 = dVar43" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar10 = *(int *)(puVar26 + 0x5a);" (assignment_expression "iVar10 = *(int *)(puVar26 + 0x5a)" identifier = (pointer_expression "*(int *)(puVar26 + 0x5a)" * (cast_expression "(int *)(puVar26 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x5a)" ( (binary_expression "puVar26 + 0x5a" identifier + number_literal) ))))) ;) (expression_statement "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" { (expression_statement "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" { (expression_statement "local_b0 = 4;" (assignment_expression "local_b0 = 4" identifier = number_literal) ;) (expression_statement "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" * (cast_expression "(int *)(iVar10 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" { (expression_statement "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x44) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "uVar11 = 6;" (assignment_expression "uVar11 = 6" identifier = number_literal) ;) (if_statement "if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" if (parenthesized_expression "(*(uint *)(iVar4 + 8) < 7)" ( (binary_expression "*(uint *)(iVar4 + 8) < 7" (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" { (expression_statement "uVar11 = *(uint *)(iVar4 + 8);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 8)" identifier = (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) })) (if_statement "if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);" do (compound_statement "{\n                  if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                }" { (if_statement "if (uVar15 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" if (parenthesized_expression "(uVar15 < 5)" ( (binary_expression "uVar15 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58))" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" ( (binary_expression "&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar1 + uVar15 * 4 + -0x1120)" * (cast_expression "(int *)(puVar1 + uVar15 * 4 + -0x1120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar15 * 4 + -0x1120)" ( (binary_expression "puVar1 + uVar15 * 4 + -0x1120" (binary_expression "puVar1 + uVar15 * 4" identifier + (binary_expression "uVar15 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(*(undefined8 *)(puVar28 + 0x1a58))" ( (pointer_expression "*(undefined8 *)(puVar28 + 0x1a58)" * (cast_expression "(undefined8 *)(puVar28 + 0x1a58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1a58)" ( (binary_expression "puVar28 + 0x1a58" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != uVar11)" ( (binary_expression "uVar15 != uVar11" identifier != identifier) )) ;) })) (expression_statement "iVar10 = *(int *)(iVar30 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar30 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar30 + 0x2d0)" * (cast_expression "(int *)(iVar30 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2d0)" ( (binary_expression "iVar30 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar19 = *(int *)(iVar10 + 0x14)" identifier = (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(iVar10 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x20)" identifier = (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar21 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_90" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar19 * 4) = (float)local_88;" (assignment_expression "*(float *)(iVar9 + iVar19 * 4) = (float)local_88" (pointer_expression "*(float *)(iVar9 + iVar19 * 4)" * (cast_expression "(float *)(iVar9 + iVar19 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar19 * 4)" ( (binary_expression "iVar9 + iVar19 * 4" identifier + (binary_expression "iVar19 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_88" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar16 * 4) = (float)local_80;" (assignment_expression "*(float *)(iVar9 + iVar16 * 4) = (float)local_80" (pointer_expression "*(float *)(iVar9 + iVar16 * 4)" * (cast_expression "(float *)(iVar9 + iVar16 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar16 * 4)" ( (binary_expression "iVar9 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_80" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" { (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_78" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" { (expression_statement "fVar34 = (float)uVar31;" (assignment_expression "fVar34 = (float)uVar31" identifier = (cast_expression "(float)uVar31" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n                  fVar34 = (float)local_70;\n                }" { (expression_statement "fVar34 = (float)local_70;" (assignment_expression "fVar34 = (float)local_70" identifier = (cast_expression "(float)local_70" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier = (binary_expression "iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier + (binary_expression "*(int *)(puVar26 + 0x58) * 4" (pointer_expression "*(int *)(puVar26 + 0x58)" * (cast_expression "(int *)(puVar26 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x58)" ( (binary_expression "puVar26 + 0x58" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;" (assignment_expression "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier = (binary_expression "iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar30 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar30 + 0x2c0)" * (cast_expression "(int *)(iVar30 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2c0)" ( (binary_expression "iVar30 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar25 < *(int *)(puVar26 + 3))" ( (binary_expression "iVar25 < *(int *)(puVar26 + 3)" identifier < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" (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 "(puVar6,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            param_1[7] = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[7] = 0;\n          }" { (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" if (parenthesized_expression "(*(int *)(puVar26 + 0x65) != 0)" ( (binary_expression "*(int *)(puVar26 + 0x65) != 0" (pointer_expression "*(int *)(puVar26 + 0x65)" * (cast_expression "(int *)(puVar26 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x65)" ( (binary_expression "puVar26 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" { (expression_statement "piVar23 = (int *)param_1[8];" (assignment_expression "piVar23 = (int *)param_1[8]" identifier = (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" 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 "puVar1 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar1 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar11)" ( (binary_expression "uVar15 < uVar11" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" (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 "(puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x1364" identifier + number_literal) , (pointer_expression "*(undefined4 *)param_1[8]" * (cast_expression "(undefined4 *)param_1[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)param_1[8])[1]" (parenthesized_expression "((undefined4 *)param_1[8])" ( (cast_expression "(undefined4 *)param_1[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)puVar26 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar26 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) goto LAB_001d9360;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9360;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar46 != iVar3)" ( (binary_expression "iVar46 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (local_5c == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_5c == *(int *)puVar2)" ( (binary_expression "local_5c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar28 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar46 = *(int *)((int)puVar18 + 0x24);" (assignment_expression "iVar46 = *(int *)((int)puVar18 + 0x24)" identifier = (pointer_expression "*(int *)((int)puVar18 + 0x24)" * (cast_expression "(int *)((int)puVar18 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x24)" ( (binary_expression "(int)puVar18 + 0x24" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = (**(code **)(puVar28 + 0x1d04ac))();" (assignment_expression "iVar3 = (**(code **)(puVar28 + 0x1d04ac))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d04ac))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d04ac))" ( (pointer_expression "**(code **)(puVar28 + 0x1d04ac)" * (pointer_expression "*(code **)(puVar28 + 0x1d04ac)" * (cast_expression "(code **)(puVar28 + 0x1d04ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d04ac)" ( (binary_expression "puVar28 + 0x1d04ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(puVar28 + 0x1d00a8))();" (assignment_expression "iVar4 = (**(code **)(puVar28 + 0x1d00a8))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d00a8))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d00a8))" ( (pointer_expression "**(code **)(puVar28 + 0x1d00a8)" * (pointer_expression "*(code **)(puVar28 + 0x1d00a8)" * (cast_expression "(code **)(puVar28 + 0x1d00a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d00a8)" ( (binary_expression "puVar28 + 0x1d00a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;" (assignment_expression "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) / iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) % iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar30 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar30 * iVar4 + iVar3" identifier = (binary_expression "iVar30 * iVar4 + iVar3" (binary_expression "iVar30 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar30 = iVar30 + iVar3;" (assignment_expression "iVar30 = iVar30 + iVar3" identifier = (binary_expression "iVar30 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar30)" ( (binary_expression "iVar3 < iVar30" identifier < identifier) )) (compound_statement "{\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" { (expression_statement "uVar31 = *puVar18;" (assignment_expression "uVar31 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "dVar44 = (double)puVar18[1];" (assignment_expression "dVar44 = (double)puVar18[1]" identifier = (cast_expression "(double)puVar18[1]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "puVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = *(int *)(puVar18 + 5);" (assignment_expression "iVar8 = *(int *)(puVar18 + 5)" identifier = (pointer_expression "*(int *)(puVar18 + 5)" * (cast_expression "(int *)(puVar18 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 5)" ( (binary_expression "puVar18 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar18 + 4);" (assignment_expression "uVar27 = *(undefined4 *)(puVar18 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(undefined4 *)((int)puVar18 + 0x14);" (assignment_expression "uVar24 = *(undefined4 *)((int)puVar18 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x14)" ( (binary_expression "(int)puVar18 + 0x14" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);" (assignment_expression "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1ab8" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar28 + 0x1cf48c);" (assignment_expression "iVar4 = *(int *)(puVar28 + 0x1cf48c)" identifier = (pointer_expression "*(int *)(puVar28 + 0x1cf48c)" * (cast_expression "(int *)(puVar28 + 0x1cf48c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf48c)" ( (binary_expression "puVar28 + 0x1cf48c" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1400" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x1c)" ( (binary_expression "(int)puVar18 + 0x1c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(puVar18 + 3);" (assignment_expression "uVar7 = *(undefined4 *)(puVar18 + 3)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 3)" * (cast_expression "(undefined4 *)(puVar18 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 3)" ( (binary_expression "puVar18 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar18 + 2);" (assignment_expression "uVar12 = *(undefined4 *)(puVar18 + 2)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 2)" * (cast_expression "(undefined4 *)(puVar18 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);" do (compound_statement "{\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)puVar18 + 0x34) != 0)" ( (binary_expression "*(int *)((int)puVar18 + 0x34) != 0" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" { (expression_statement "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);" (assignment_expression "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" identifier = (cast_expression "(undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d01fc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d01fc)" * (pointer_expression "*(code **)(puVar28 + 0x1d01fc)" * (cast_expression "(code **)(puVar28 + 0x1d01fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d01fc)" ( (binary_expression "puVar28 + 0x1d01fc" identifier + number_literal) ))))) )) (argument_list "(uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar46 + 0x18)" * (cast_expression "(undefined4 *)(iVar46 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf7f0))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf7f0)" * (pointer_expression "*(code **)(puVar28 + 0x1cf7f0)" * (cast_expression "(code **)(puVar28 + 0x1cf7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf7f0)" ( (binary_expression "puVar28 + 0x1cf7f0" identifier + number_literal) ))))) )) (argument_list "(uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" if (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (iVar9 == 0))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (iVar9 == 0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }" { (labeled_statement "LAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" else (compound_statement "{\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" { (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];" (assignment_expression "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1]" identifier = (binary_expression "((double)iVar3 - pdVar14[1]) * pdVar17[1]" (parenthesized_expression "((double)iVar3 - pdVar14[1])" ( (binary_expression "(double)iVar3 - pdVar14[1]" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "pdVar14[1]" identifier [ number_literal ])) )) * (subscript_expression "pdVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "dVar41 = dVar38 * dVar38;" (assignment_expression "dVar41 = dVar38 * dVar38" identifier = (binary_expression "dVar38 * dVar38" identifier * identifier)) ;) (expression_statement "dVar40 = dVar44 * dVar44;" (assignment_expression "dVar40 = dVar44 * dVar44" identifier = (binary_expression "dVar44 * dVar44" identifier * identifier)) ;) (expression_statement "dVar42 = 0.0;" (assignment_expression "dVar42 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );" do (compound_statement "{\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            }" { (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" identifier = (pointer_expression "*pdVar14" * identifier)) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar45 = ((double)iVar10 - dVar36) * dVar35;" (assignment_expression "dVar45 = ((double)iVar10 - dVar36) * dVar35" identifier = (binary_expression "((double)iVar10 - dVar36) * dVar35" (parenthesized_expression "((double)iVar10 - dVar36)" ( (binary_expression "(double)iVar10 - dVar36" (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier) - identifier) )) * identifier)) ;) (expression_statement "dVar37 = dVar45 * dVar45 + dVar41;" (assignment_expression "dVar37 = dVar45 * dVar45 + dVar41" identifier = (binary_expression "dVar45 * dVar45 + dVar41" (binary_expression "dVar45 * dVar45" identifier * identifier) + identifier)) ;) (if_statement "if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" if (parenthesized_expression "(dVar40 <= dVar37)" ( (binary_expression "dVar40 <= dVar37" identifier <= identifier) )) (compound_statement "{\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 < 1) goto LAB_001d9670;" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001d9670;" goto statement_identifier ;)) (expression_statement "piVar22 = *(int **)(iVar46 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar46 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar46 + 0x2d0)" * (cast_expression "(int **)(iVar46 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar46 + 0x2d0)" ( (binary_expression "iVar46 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2d0)" * (cast_expression "(int *)(iVar8 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = piVar22;" (assignment_expression "piVar23 = piVar22" identifier = identifier) ;) (expression_statement "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" identifier = identifier) ;) (do_statement "do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);" do (compound_statement "{\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                }" { (expression_statement "iVar21 = iVar19 + *piVar23 * 0xc;" (assignment_expression "iVar21 = iVar19 + *piVar23 * 0xc" identifier = (binary_expression "iVar19 + *piVar23 * 0xc" identifier + (binary_expression "*piVar23 * 0xc" (pointer_expression "*piVar23" * identifier) * number_literal))) ;) (if_statement "if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" if (parenthesized_expression "((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0))" ( (binary_expression "(piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)" (parenthesized_expression "(piVar22[*piVar23 * 3 + 1] != 0)" ( (binary_expression "piVar22[*piVar23 * 3 + 1] != 0" (subscript_expression "piVar22[*piVar23 * 3 + 1]" identifier [ (binary_expression "*piVar23 * 3 + 1" (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar21 + 4) != 0)" ( (binary_expression "*(int *)(iVar21 + 4) != 0" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" { (expression_statement "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;" (assignment_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20" (pointer_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar21 + 8) * 4" identifier + (binary_expression "*(int *)(iVar21 + 8) * 4" (pointer_expression "*(int *)(iVar21 + 8)" * (cast_expression "(int *)(iVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar20" * identifier)) ;) })) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" identifier = (binary_expression "piVar23 + 3" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar22 + iVar16 * 3)" ( (binary_expression "piVar23 != piVar22 + iVar16 * 3" identifier != (binary_expression "piVar22 + iVar16 * 3" identifier + (binary_expression "iVar16 * 3" identifier * number_literal))) )) ;) (expression_statement "iVar16 = iVar16 << 2;" (assignment_expression "iVar16 = iVar16 << 2" identifier = (binary_expression "iVar16 << 2" identifier << number_literal)) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) << 2;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) << 2" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) << 2" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) << number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" else (compound_statement "{\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (if_statement "if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" { (if_statement "if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" if (parenthesized_expression "(dVar37 < dVar42)" ( (binary_expression "dVar37 < dVar42" identifier < identifier) )) (compound_statement "{\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" { (expression_statement "(**(code **)(puVar28 + 0x1d0020))();" (call_expression "(**(code **)(puVar28 + 0x1d0020))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0020))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0020)" * (pointer_expression "*(code **)(puVar28 + 0x1d0020)" * (cast_expression "(code **)(puVar28 + 0x1d0020)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0020)" ( (binary_expression "puVar28 + 0x1d0020" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) })) (expression_statement "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);" (assignment_expression "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf8e4))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf8e4)" * (pointer_expression "*(code **)(puVar28 + 0x1cf8e4)" * (cast_expression "(code **)(puVar28 + 0x1cf8e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf8e4)" ( (binary_expression "puVar28 + 0x1cf8e4" identifier + number_literal) ))))) )) (argument_list "(((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" ( (binary_expression "((SQRT(dVar37) * dVar43) / dVar44) * dVar32" (parenthesized_expression "((SQRT(dVar37) * dVar43) / dVar44)" ( (binary_expression "(SQRT(dVar37) * dVar43) / dVar44" (parenthesized_expression "(SQRT(dVar37) * dVar43)" ( (binary_expression "SQRT(dVar37) * dVar43" (call_expression "SQRT(dVar37)" identifier (argument_list "(dVar37)" ( identifier ))) * identifier) )) / identifier) )) * identifier) )))) ;) (expression_statement "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);" (assignment_expression "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" identifier = (cast_expression "(double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d02bc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d02bc)" * (pointer_expression "*(code **)(puVar28 + 0x1d02bc)" * (cast_expression "(code **)(puVar28 + 0x1d02bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d02bc)" ( (binary_expression "puVar28 + 0x1d02bc" identifier + number_literal) ))))) )) (argument_list "(uVar33,uVar31 ^ 0x8000000000000000)" ( identifier , (binary_expression "uVar31 ^ 0x8000000000000000" identifier ^ number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = dVar45 * dVar38;" (assignment_expression "dVar45 = dVar45 * dVar38" identifier = (binary_expression "dVar45 * dVar38" identifier * identifier)) ;) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar38 = dVar39 * dVar38;" (assignment_expression "dVar38 = dVar39 * dVar38" identifier = (binary_expression "dVar39 * dVar38" identifier * identifier)) ;) (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" identifier = (pointer_expression "*pdVar14" * identifier)) ;) })) (expression_statement "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);" (assignment_expression "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0088))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0088)" * (pointer_expression "*(code **)(puVar28 + 0x1d0088)" * (cast_expression "(code **)(puVar28 + 0x1d0088)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0088)" ( (binary_expression "puVar28 + 0x1d0088" identifier + number_literal) ))))) )) (argument_list "(iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" ( identifier , identifier , identifier , identifier , (binary_expression "dVar45 / dVar35 + dVar36" (binary_expression "dVar45 / dVar35" identifier / identifier) + identifier) , (binary_expression "dVar38 / pdVar17[1] + pdVar14[1]" (binary_expression "dVar38 / pdVar17[1]" identifier / (subscript_expression "pdVar17[1]" identifier [ number_literal ])) + (subscript_expression "pdVar14[1]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "*(int *)((int)puVar18 + 0x34) = iVar25;" (assignment_expression "*(int *)((int)puVar18 + 0x34) = iVar25" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = dVar39;" (assignment_expression "dVar38 = dVar39" identifier = identifier) ;) (labeled_statement "LAB_001d9670:\n                iVar16 = iVar16 * 4;" statement_identifier : (expression_statement "iVar16 = iVar16 * 4;" (assignment_expression "iVar16 = iVar16 * 4" identifier = (binary_expression "iVar16 * 4" identifier * number_literal)) ;)) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) * 4" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) * number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "iVar9 = iVar9 + iVar19;" (assignment_expression "iVar9 = iVar9 + iVar19" identifier = (binary_expression "iVar9 + iVar19" identifier + identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)((int)puVar13 + iVar16);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar13 + iVar16)" identifier = (cast_expression "(undefined4 *)((int)puVar13 + iVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar16)" ( (binary_expression "(int)puVar13 + iVar16" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0098))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0098)" * (pointer_expression "*(code **)(puVar28 + 0x1d0098)" * (cast_expression "(code **)(puVar28 + 0x1d0098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0098)" ( (binary_expression "puVar28 + 0x1d0098" identifier + number_literal) ))))) )) (argument_list "(uVar5,uVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" if (parenthesized_expression "(*(int *)(iVar46 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar46 + 0x328) != 0" (pointer_expression "*(int *)(iVar46 + 0x328)" * (cast_expression "(int *)(iVar46 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x328)" ( (binary_expression "iVar46 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" { (expression_statement "piVar23 = *(int **)(puVar18 + 7);" (assignment_expression "piVar23 = *(int **)(puVar18 + 7)" identifier = (pointer_expression "*(int **)(puVar18 + 7)" * (cast_expression "(int **)(puVar18 + 7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar28 + 0x1cfe84))();" (call_expression "(**(code **)(puVar28 + 0x1cfe84))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1cfe84))" ( (pointer_expression "**(code **)(puVar28 + 0x1cfe84)" * (pointer_expression "*(code **)(puVar28 + 0x1cfe84)" * (cast_expression "(code **)(puVar28 + 0x1cfe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cfe84)" ( (binary_expression "puVar28 + 0x1cfe84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x1cffd8);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x1cffd8)" identifier = (pointer_expression "*(code **)(puVar28 + 0x1cffd8)" * (cast_expression "(code **)(puVar28 + 0x1cffd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cffd8)" ( (binary_expression "puVar28 + 0x1cffd8" identifier + number_literal) ))))) ;) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar11)" ( (binary_expression "uVar15 < uVar11" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf854))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf854)" * (pointer_expression "*(code **)(puVar28 + 0x1cf854)" * (cast_expression "(code **)(puVar28 + 0x1cf854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf854)" ( (binary_expression "puVar28 + 0x1cf854" identifier + number_literal) ))))) )) (argument_list "(iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" ( identifier , (binary_expression "iVar4 + -0x1350" identifier + number_literal) , (pointer_expression "**(undefined4 **)(puVar18 + 7)" * (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(puVar18 + 7))[1]" (parenthesized_expression "(*(undefined4 **)(puVar18 + 7))" ( (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar46 + 0x1c)" * (cast_expression "(undefined4 *)(iVar46 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 == 0) goto LAB_001d97e0;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d97e0;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar30 != iVar3)" ( (binary_expression "iVar30 != iVar3" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x001d944c) */\n/* WARNING: Removing unreachable block (ram,0x001d91e0) */\n/* WARNING: Removing unreachable block (ram,0x001d91ec) */\n/* WARNING: Removing unreachable block (ram,0x001d91f8) */\n/* WARNING: Removing unreachable block (ram,0x001d9204) */\n/* DWARF original prototype: void ColorMatrixImage._omp_fn.3(anon_struct_36_9_58c4ea65 * param_0) */\n\nvoid __thiscall ColorMatrixImage__omp_fn_3(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  double *pdVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n                    /* WARNING: Load size is inaccurate */\n  puVar26 = *this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = *(int *)((int)this + 0x18);\n    iVar4 = *(int *)((int)this + 4);\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = *(undefined4 *)((int)this + 0x10);\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = *(ulonglong **)((int)this + 0xc);\n    uVar7 = *(undefined4 *)((int)this + 8);\n    do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar13 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}\n\n" comment comment comment comment comment comment (function_definition "void __thiscall ColorMatrixImage__omp_fn_3(void *this)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  double *pdVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n                    /* WARNING: Load size is inaccurate */\n  puVar26 = *this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = *(int *)((int)this + 0x18);\n    iVar4 = *(int *)((int)this + 4);\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = *(undefined4 *)((int)this + 0x10);\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = *(ulonglong **)((int)this + 0xc);\n    uVar7 = *(undefined4 *)((int)this + 8);\n    do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar13 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "ColorMatrixImage__omp_fn_3(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  double *pdVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n                    /* WARNING: Load size is inaccurate */\n  puVar26 = *this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = *(int *)((int)this + 0x18);\n    iVar4 = *(int *)((int)this + 4);\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = *(undefined4 *)((int)this + 0x10);\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = *(ulonglong **)((int)this + 0xc);\n    uVar7 = *(undefined4 *)((int)this + 8);\n    do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar13 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "ulonglong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "ulonglong *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "ulonglong *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined4 local_b4;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "ulonglong local_a8;" type_identifier identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) comment (expression_statement "puVar26 = *this;" (assignment_expression "puVar26 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(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 "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(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 "puVar28 = PTR_LAB_003a88e0;" (assignment_expression "puVar28 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;" (assignment_expression "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) / iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) % iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "puVar18 = (ulonglong *)(iVar46 * iVar4);" (assignment_expression "puVar18 = (ulonglong *)(iVar46 * iVar4)" identifier = (cast_expression "(ulonglong *)(iVar46 * iVar4)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 * iVar4)" ( (binary_expression "iVar46 * iVar4" identifier * identifier) )))) ;) (expression_statement "iVar3 = (int)puVar18 + iVar3;" (assignment_expression "iVar3 = (int)puVar18 + iVar3" identifier = (binary_expression "(int)puVar18 + iVar3" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar46 = iVar46 + iVar3;" (assignment_expression "iVar46 = iVar46 + iVar3" identifier = (binary_expression "iVar46 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar46) {\n    iVar30 = *(int *)((int)this + 0x18);\n    iVar4 = *(int *)((int)this + 4);\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = *(undefined4 *)((int)this + 0x10);\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = *(ulonglong **)((int)this + 0xc);\n    uVar7 = *(undefined4 *)((int)this + 8);\n    do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar46)" ( (binary_expression "iVar3 < iVar46" identifier < identifier) )) (compound_statement "{\n    iVar30 = *(int *)((int)this + 0x18);\n    iVar4 = *(int *)((int)this + 4);\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = *(undefined4 *)((int)this + 0x10);\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = *(ulonglong **)((int)this + 0xc);\n    uVar7 = *(undefined4 *)((int)this + 8);\n    do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" { (expression_statement "iVar30 = *(int *)((int)this + 0x18);" (assignment_expression "iVar30 = *(int *)((int)this + 0x18)" identifier = (pointer_expression "*(int *)((int)this + 0x18)" * (cast_expression "(int *)((int)this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)this + 4);" (assignment_expression "iVar4 = *(int *)((int)this + 4)" identifier = (pointer_expression "*(int *)((int)this + 4)" * (cast_expression "(int *)((int)this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 4)" ( (binary_expression "(int)this + 4" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)this + 0x10);" (assignment_expression "uVar5 = *(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 "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = *(ulonglong **)((int)this + 0xc);" (assignment_expression "puVar6 = *(ulonglong **)((int)this + 0xc)" identifier = (pointer_expression "*(ulonglong **)((int)this + 0xc)" * (cast_expression "(ulonglong **)((int)this + 0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)this + 8);" (assignment_expression "uVar7 = *(undefined4 *)((int)this + 8)" identifier = (pointer_expression "*(undefined4 *)((int)this + 8)" * (cast_expression "(undefined4 *)((int)this + 8)" ( (type_descriptor "undefined4 *" type_identifier (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) ))))) ;) (do_statement "do {\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);" do (compound_statement "{\n      if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (*(int *)((int)this + 0x1c) != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)this + 0x1c) != 0)" ( (binary_expression "*(int *)((int)this + 0x1c) != 0" (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) )))) != number_literal) )) (compound_statement "{\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" { (expression_statement "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (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 "(uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar26 + 3)" * (cast_expression "(undefined4 *)(puVar26 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar30 + 0x18)" * (cast_expression "(undefined4 *)(iVar30 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x18)" ( (binary_expression "iVar30 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" if (parenthesized_expression "((iVar8 == 0) || (iVar9 == 0))" ( (binary_expression "(iVar8 == 0) || (iVar9 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;\n        }" { (labeled_statement "LAB_001d9360:\n          *(undefined4 *)((int)this + 0x1c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x1c)" * (cast_expression "(undefined4 *)((int)this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" else (compound_statement "{\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" { (expression_statement "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);" (call_expression "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8)" (parenthesized_expression "(*(code *)PTR_GetPixelInfo_003a92b4)" ( (pointer_expression "*(code *)PTR_GetPixelInfo_003a92b4" * (cast_expression "(code *)PTR_GetPixelInfo_003a92b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar26,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "puVar1 = PTR_s_courses_003a88ec;" (assignment_expression "puVar1 = PTR_s_courses_003a88ec" identifier = identifier) ;) (if_statement "if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(puVar26 + 3))" ( (binary_expression "0 < *(int *)(puVar26 + 3)" number_literal < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));" do (compound_statement "{\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = *(uint *)(iVar4 + 8);\n              uVar12 = 6;\n              if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }\n              if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            }" { (expression_statement "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003a8ff4" * (cast_expression "(code *)PTR_ResetMagickMemory_003a8ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b8,0,0x58)" ( (pointer_expression "&local_b8" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_a8 = puVar26[0x49];" (assignment_expression "local_a8 = puVar26[0x49]" identifier = (subscript_expression "puVar26[0x49]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = *(undefined4 *)puVar26;" (assignment_expression "local_b8 = *(undefined4 *)puVar26" identifier = (pointer_expression "*(undefined4 *)puVar26" * (cast_expression "(undefined4 *)puVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_b4 = (undefined4)*puVar26;" (assignment_expression "local_b4 = (undefined4)*puVar26" identifier = (binary_expression "(undefined4)*puVar26" (parenthesized_expression "(undefined4)" ( identifier )) * identifier)) ;) (expression_statement "local_a0 = *(undefined4 *)(puVar26 + 4);" (assignment_expression "local_a0 = *(undefined4 *)(puVar26 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar26 + 4)" * (cast_expression "(undefined4 *)(puVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 4)" ( (binary_expression "puVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(int *)((int)puVar26 + 700);" (assignment_expression "local_b0 = *(int *)((int)puVar26 + 700)" identifier = (pointer_expression "*(int *)((int)puVar26 + 700)" * (cast_expression "(int *)((int)puVar26 + 700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 700)" ( (binary_expression "(int)puVar26 + 700" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_70 = dVar43;" (assignment_expression "local_70 = dVar43" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar10 = *(int *)(puVar26 + 0x5a);" (assignment_expression "iVar10 = *(int *)(puVar26 + 0x5a)" identifier = (pointer_expression "*(int *)(puVar26 + 0x5a)" * (cast_expression "(int *)(puVar26 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x5a)" ( (binary_expression "puVar26 + 0x5a" identifier + number_literal) ))))) ;) (expression_statement "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" { (expression_statement "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" { (expression_statement "local_b0 = 4;" (assignment_expression "local_b0 = 4" identifier = number_literal) ;) (expression_statement "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" * (cast_expression "(int *)(iVar10 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" { (expression_statement "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x44) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "uVar11 = *(uint *)(iVar4 + 8);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 8)" identifier = (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 6;" (assignment_expression "uVar12 = 6" identifier = number_literal) ;) (if_statement "if (uVar11 < 7) {\n                uVar12 = uVar11;\n              }" if (parenthesized_expression "(uVar11 < 7)" ( (binary_expression "uVar11 < 7" identifier < number_literal) )) (compound_statement "{\n                uVar12 = uVar11;\n              }" { (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) })) (if_statement "if (uVar12 != 0) {\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar11 = 0;\n                do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                } while (uVar11 != uVar12);" do (compound_statement "{\n                  if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar11 = uVar11 + 1;\n                }" { (if_statement "if (uVar11 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" if (parenthesized_expression "(uVar11 < 5)" ( (binary_expression "uVar11 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" { comment comment (expression_statement "(*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));" (call_expression "(*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58))" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120))" * (cast_expression "(code *)(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120))" ( (binary_expression "&_gp + *(int *)(puVar1 + uVar11 * 4 + -0x1120)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar1 + uVar11 * 4 + -0x1120)" * (cast_expression "(int *)(puVar1 + uVar11 * 4 + -0x1120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar11 * 4 + -0x1120)" ( (binary_expression "puVar1 + uVar11 * 4 + -0x1120" (binary_expression "puVar1 + uVar11 * 4" identifier + (binary_expression "uVar11 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(*(undefined8 *)(puVar28 + 0x1a58))" ( (pointer_expression "*(undefined8 *)(puVar28 + 0x1a58)" * (cast_expression "(undefined8 *)(puVar28 + 0x1a58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1a58)" ( (binary_expression "puVar28 + 0x1a58" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 != uVar12)" ( (binary_expression "uVar11 != uVar12" identifier != identifier) )) ;) })) (expression_statement "iVar10 = *(int *)(iVar30 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar30 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar30 + 0x2d0)" * (cast_expression "(int *)(iVar30 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2d0)" ( (binary_expression "iVar30 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar19 = *(int *)(iVar10 + 0x14)" identifier = (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(iVar10 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x20)" identifier = (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar21 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_90" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar19 * 4) = (float)local_88;" (assignment_expression "*(float *)(iVar9 + iVar19 * 4) = (float)local_88" (pointer_expression "*(float *)(iVar9 + iVar19 * 4)" * (cast_expression "(float *)(iVar9 + iVar19 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar19 * 4)" ( (binary_expression "iVar9 + iVar19 * 4" identifier + (binary_expression "iVar19 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_88" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar16 * 4) = (float)local_80;" (assignment_expression "*(float *)(iVar9 + iVar16 * 4) = (float)local_80" (pointer_expression "*(float *)(iVar9 + iVar16 * 4)" * (cast_expression "(float *)(iVar9 + iVar16 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar16 * 4)" ( (binary_expression "iVar9 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_80" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" { (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_78" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" { (expression_statement "fVar34 = (float)uVar31;" (assignment_expression "fVar34 = (float)uVar31" identifier = (cast_expression "(float)uVar31" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n                  fVar34 = (float)local_70;\n                }" { (expression_statement "fVar34 = (float)local_70;" (assignment_expression "fVar34 = (float)local_70" identifier = (cast_expression "(float)local_70" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier = (binary_expression "iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier + (binary_expression "*(int *)(puVar26 + 0x58) * 4" (pointer_expression "*(int *)(puVar26 + 0x58)" * (cast_expression "(int *)(puVar26 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x58)" ( (binary_expression "puVar26 + 0x58" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;" (assignment_expression "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier = (binary_expression "iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar30 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar30 + 0x2c0)" * (cast_expression "(int *)(iVar30 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2c0)" ( (binary_expression "iVar30 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar25 < *(int *)(puVar26 + 3))" ( (binary_expression "iVar25 < *(int *)(puVar26 + 3)" identifier < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" (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 "(puVar6,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)this + 0x1c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x1c)" * (cast_expression "(undefined4 *)((int)this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" if (parenthesized_expression "(*(int *)(puVar26 + 0x65) != 0)" ( (binary_expression "*(int *)(puVar26 + 0x65) != 0" (pointer_expression "*(int *)(puVar26 + 0x65)" * (cast_expression "(int *)(puVar26 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x65)" ( (binary_expression "puVar26 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = *(int **)((int)this + 0x20);\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" { (expression_statement "piVar23 = *(int **)((int)this + 0x20);" (assignment_expression "piVar23 = *(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 "**" * (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 "(*(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 "puVar1 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar1 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar12 = piVar23[1];" (assignment_expression "uVar12 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar23[1] = uVar11;" (assignment_expression "piVar23[1] = uVar11" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar11 < uVar12) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar11 < uVar12) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar11 < uVar12) + *piVar23" (call_expression "(uint)(uVar11 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar12)" ( (binary_expression "uVar11 < uVar12" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c));" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c))" (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 "(puVar26,PTR_s_courses_003a88ec + -0x1364,\n                               **(undefined4 **)((int)this + 0x20),\n                               (*(undefined4 **)((int)this + 0x20))[1],0,\n                               *(undefined4 *)((int)puVar26 + 0x1c))" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x1364" identifier + number_literal) , (pointer_expression "**(undefined4 **)((int)this + 0x20)" * (pointer_expression "*(undefined4 **)((int)this + 0x20)" * (cast_expression "(undefined4 **)((int)this + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (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) ))))) , (subscript_expression "(*(undefined4 **)((int)this + 0x20))[1]" (parenthesized_expression "(*(undefined4 **)((int)this + 0x20))" ( (pointer_expression "*(undefined4 **)((int)this + 0x20)" * (cast_expression "(undefined4 **)((int)this + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x20)" ( (binary_expression "(int)this + 0x20" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)puVar26 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar26 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) goto LAB_001d9360;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9360;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar46 != iVar3)" ( (binary_expression "iVar46 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (local_5c == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_5c == *(int *)puVar2)" ( (binary_expression "local_5c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar28 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar46 = *(int *)((int)puVar18 + 0x24);" (assignment_expression "iVar46 = *(int *)((int)puVar18 + 0x24)" identifier = (pointer_expression "*(int *)((int)puVar18 + 0x24)" * (cast_expression "(int *)((int)puVar18 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x24)" ( (binary_expression "(int)puVar18 + 0x24" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = (**(code **)(puVar28 + 0x1d04ac))();" (assignment_expression "iVar3 = (**(code **)(puVar28 + 0x1d04ac))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d04ac))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d04ac))" ( (pointer_expression "**(code **)(puVar28 + 0x1d04ac)" * (pointer_expression "*(code **)(puVar28 + 0x1d04ac)" * (cast_expression "(code **)(puVar28 + 0x1d04ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d04ac)" ( (binary_expression "puVar28 + 0x1d04ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(puVar28 + 0x1d00a8))();" (assignment_expression "iVar4 = (**(code **)(puVar28 + 0x1d00a8))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d00a8))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d00a8))" ( (pointer_expression "**(code **)(puVar28 + 0x1d00a8)" * (pointer_expression "*(code **)(puVar28 + 0x1d00a8)" * (cast_expression "(code **)(puVar28 + 0x1d00a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d00a8)" ( (binary_expression "puVar28 + 0x1d00a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;" (assignment_expression "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) / iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) % iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar30 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar30 * iVar4 + iVar3" identifier = (binary_expression "iVar30 * iVar4 + iVar3" (binary_expression "iVar30 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar30 = iVar30 + iVar3;" (assignment_expression "iVar30 = iVar30 + iVar3" identifier = (binary_expression "iVar30 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar13 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar30)" ( (binary_expression "iVar3 < iVar30" identifier < identifier) )) (compound_statement "{\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar13 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" { (expression_statement "uVar31 = *puVar18;" (assignment_expression "uVar31 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "dVar44 = (double)puVar18[1];" (assignment_expression "dVar44 = (double)puVar18[1]" identifier = (cast_expression "(double)puVar18[1]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "puVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = *(int *)(puVar18 + 5);" (assignment_expression "iVar8 = *(int *)(puVar18 + 5)" identifier = (pointer_expression "*(int *)(puVar18 + 5)" * (cast_expression "(int *)(puVar18 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 5)" ( (binary_expression "puVar18 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar18 + 4);" (assignment_expression "uVar27 = *(undefined4 *)(puVar18 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(undefined4 *)((int)puVar18 + 0x14);" (assignment_expression "uVar24 = *(undefined4 *)((int)puVar18 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x14)" ( (binary_expression "(int)puVar18 + 0x14" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);" (assignment_expression "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1ab8" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar28 + 0x1cf48c);" (assignment_expression "iVar4 = *(int *)(puVar28 + 0x1cf48c)" identifier = (pointer_expression "*(int *)(puVar28 + 0x1cf48c)" * (cast_expression "(int *)(puVar28 + 0x1cf48c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf48c)" ( (binary_expression "puVar28 + 0x1cf48c" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1400" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x1c)" ( (binary_expression "(int)puVar18 + 0x1c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(puVar18 + 3);" (assignment_expression "uVar7 = *(undefined4 *)(puVar18 + 3)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 3)" * (cast_expression "(undefined4 *)(puVar18 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 3)" ( (binary_expression "puVar18 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)(puVar18 + 2);" (assignment_expression "uVar13 = *(undefined4 *)(puVar18 + 2)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 2)" * (cast_expression "(undefined4 *)(puVar18 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);" do (compound_statement "{\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)puVar18 + 0x34) != 0)" ( (binary_expression "*(int *)((int)puVar18 + 0x34) != 0" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" { (expression_statement "puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);" (assignment_expression "puVar14 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" identifier = (cast_expression "(undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d01fc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d01fc)" * (pointer_expression "*(code **)(puVar28 + 0x1d01fc)" * (cast_expression "(code **)(puVar28 + 0x1d01fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d01fc)" ( (binary_expression "puVar28 + 0x1d01fc" identifier + number_literal) ))))) )) (argument_list "(uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar46 + 0x18)" * (cast_expression "(undefined4 *)(iVar46 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf7f0))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf7f0)" * (pointer_expression "*(code **)(puVar28 + 0x1cf7f0)" * (cast_expression "(code **)(puVar28 + 0x1cf7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf7f0)" ( (binary_expression "puVar28 + 0x1cf7f0" identifier + number_literal) ))))) )) (argument_list "(uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((puVar14 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" if (parenthesized_expression "((puVar14 == (undefined4 *)0x0) || (iVar9 == 0))" ( (binary_expression "(puVar14 == (undefined4 *)0x0) || (iVar9 == 0)" (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }" { (labeled_statement "LAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" else (compound_statement "{\n          pdVar15 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" { (expression_statement "pdVar15 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar15 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1];" (assignment_expression "dVar38 = ((double)iVar3 - pdVar15[1]) * pdVar17[1]" identifier = (binary_expression "((double)iVar3 - pdVar15[1]) * pdVar17[1]" (parenthesized_expression "((double)iVar3 - pdVar15[1])" ( (binary_expression "(double)iVar3 - pdVar15[1]" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "pdVar15[1]" identifier [ number_literal ])) )) * (subscript_expression "pdVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "dVar41 = dVar38 * dVar38;" (assignment_expression "dVar41 = dVar38 * dVar38" identifier = (binary_expression "dVar38 * dVar38" identifier * identifier)) ;) (expression_statement "dVar40 = dVar44 * dVar44;" (assignment_expression "dVar40 = dVar44 * dVar44" identifier = (binary_expression "dVar44 * dVar44" identifier * identifier)) ;) (expression_statement "dVar42 = 0.0;" (assignment_expression "dVar42 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );" do (compound_statement "{\n              dVar36 = *pdVar15;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar14 = (undefined4 *)((int)puVar14 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar15 = *(double **)((int)puVar18 + 0x2c);\n            }" { (expression_statement "dVar36 = *pdVar15;" (assignment_expression "dVar36 = *pdVar15" identifier = (pointer_expression "*pdVar15" * identifier)) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar45 = ((double)iVar10 - dVar36) * dVar35;" (assignment_expression "dVar45 = ((double)iVar10 - dVar36) * dVar35" identifier = (binary_expression "((double)iVar10 - dVar36) * dVar35" (parenthesized_expression "((double)iVar10 - dVar36)" ( (binary_expression "(double)iVar10 - dVar36" (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier) - identifier) )) * identifier)) ;) (expression_statement "dVar37 = dVar45 * dVar45 + dVar41;" (assignment_expression "dVar37 = dVar45 * dVar45 + dVar41" identifier = (binary_expression "dVar45 * dVar45 + dVar41" (binary_expression "dVar45 * dVar45" identifier * identifier) + identifier)) ;) (if_statement "if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" if (parenthesized_expression "(dVar40 <= dVar37)" ( (binary_expression "dVar40 <= dVar37" identifier <= identifier) )) (compound_statement "{\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar14;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 < 1) goto LAB_001d9670;" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001d9670;" goto statement_identifier ;)) (expression_statement "piVar22 = *(int **)(iVar46 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar46 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar46 + 0x2d0)" * (cast_expression "(int **)(iVar46 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar46 + 0x2d0)" ( (binary_expression "iVar46 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2d0)" * (cast_expression "(int *)(iVar8 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = piVar22;" (assignment_expression "piVar23 = piVar22" identifier = identifier) ;) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" identifier = identifier) ;) (do_statement "do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);" do (compound_statement "{\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                }" { (expression_statement "iVar21 = iVar19 + *piVar23 * 0xc;" (assignment_expression "iVar21 = iVar19 + *piVar23 * 0xc" identifier = (binary_expression "iVar19 + *piVar23 * 0xc" identifier + (binary_expression "*piVar23 * 0xc" (pointer_expression "*piVar23" * identifier) * number_literal))) ;) (if_statement "if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" if (parenthesized_expression "((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0))" ( (binary_expression "(piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)" (parenthesized_expression "(piVar22[*piVar23 * 3 + 1] != 0)" ( (binary_expression "piVar22[*piVar23 * 3 + 1] != 0" (subscript_expression "piVar22[*piVar23 * 3 + 1]" identifier [ (binary_expression "*piVar23 * 3 + 1" (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar21 + 4) != 0)" ( (binary_expression "*(int *)(iVar21 + 4) != 0" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" { (expression_statement "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;" (assignment_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20" (pointer_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar21 + 8) * 4" identifier + (binary_expression "*(int *)(iVar21 + 8) * 4" (pointer_expression "*(int *)(iVar21 + 8)" * (cast_expression "(int *)(iVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar20" * identifier)) ;) })) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" identifier = (binary_expression "piVar23 + 3" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar22 + iVar16 * 3)" ( (binary_expression "piVar23 != piVar22 + iVar16 * 3" identifier != (binary_expression "piVar22 + iVar16 * 3" identifier + (binary_expression "iVar16 * 3" identifier * number_literal))) )) ;) (expression_statement "iVar16 = iVar16 << 2;" (assignment_expression "iVar16 = iVar16 << 2" identifier = (binary_expression "iVar16 << 2" identifier << number_literal)) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) << 2;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) << 2" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) << 2" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) << number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" else (compound_statement "{\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (if_statement "if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar15 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar15;\n                }" { (if_statement "if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" if (parenthesized_expression "(dVar37 < dVar42)" ( (binary_expression "dVar37 < dVar42" identifier < identifier) )) (compound_statement "{\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" { (expression_statement "(**(code **)(puVar28 + 0x1d0020))();" (call_expression "(**(code **)(puVar28 + 0x1d0020))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0020))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0020)" * (pointer_expression "*(code **)(puVar28 + 0x1d0020)" * (cast_expression "(code **)(puVar28 + 0x1d0020)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0020)" ( (binary_expression "puVar28 + 0x1d0020" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) })) (expression_statement "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);" (assignment_expression "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf8e4))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf8e4)" * (pointer_expression "*(code **)(puVar28 + 0x1cf8e4)" * (cast_expression "(code **)(puVar28 + 0x1cf8e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf8e4)" ( (binary_expression "puVar28 + 0x1cf8e4" identifier + number_literal) ))))) )) (argument_list "(((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" ( (binary_expression "((SQRT(dVar37) * dVar43) / dVar44) * dVar32" (parenthesized_expression "((SQRT(dVar37) * dVar43) / dVar44)" ( (binary_expression "(SQRT(dVar37) * dVar43) / dVar44" (parenthesized_expression "(SQRT(dVar37) * dVar43)" ( (binary_expression "SQRT(dVar37) * dVar43" (call_expression "SQRT(dVar37)" identifier (argument_list "(dVar37)" ( identifier ))) * identifier) )) / identifier) )) * identifier) )))) ;) (expression_statement "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);" (assignment_expression "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" identifier = (cast_expression "(double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d02bc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d02bc)" * (pointer_expression "*(code **)(puVar28 + 0x1d02bc)" * (cast_expression "(code **)(puVar28 + 0x1d02bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d02bc)" ( (binary_expression "puVar28 + 0x1d02bc" identifier + number_literal) ))))) )) (argument_list "(uVar33,uVar31 ^ 0x8000000000000000)" ( identifier , (binary_expression "uVar31 ^ 0x8000000000000000" identifier ^ number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = dVar45 * dVar38;" (assignment_expression "dVar45 = dVar45 * dVar38" identifier = (binary_expression "dVar45 * dVar38" identifier * identifier)) ;) (expression_statement "pdVar15 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar15 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar38 = dVar39 * dVar38;" (assignment_expression "dVar38 = dVar39 * dVar38" identifier = (binary_expression "dVar39 * dVar38" identifier * identifier)) ;) (expression_statement "dVar36 = *pdVar15;" (assignment_expression "dVar36 = *pdVar15" identifier = (pointer_expression "*pdVar15" * identifier)) ;) })) (expression_statement "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24);" (assignment_expression "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0088))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0088)" * (pointer_expression "*(code **)(puVar28 + 0x1d0088)" * (cast_expression "(code **)(puVar28 + 0x1d0088)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0088)" ( (binary_expression "puVar28 + 0x1d0088" identifier + number_literal) ))))) )) (argument_list "(iVar46,uVar27,iVar8,uVar13,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar15[1],iVar9,uVar24)" ( identifier , identifier , identifier , identifier , (binary_expression "dVar45 / dVar35 + dVar36" (binary_expression "dVar45 / dVar35" identifier / identifier) + identifier) , (binary_expression "dVar38 / pdVar17[1] + pdVar15[1]" (binary_expression "dVar38 / pdVar17[1]" identifier / (subscript_expression "pdVar17[1]" identifier [ number_literal ])) + (subscript_expression "pdVar15[1]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "*(int *)((int)puVar18 + 0x34) = iVar25;" (assignment_expression "*(int *)((int)puVar18 + 0x34) = iVar25" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = dVar39;" (assignment_expression "dVar38 = dVar39" identifier = identifier) ;) (labeled_statement "LAB_001d9670:\n                iVar16 = iVar16 * 4;" statement_identifier : (expression_statement "iVar16 = iVar16 * 4;" (assignment_expression "iVar16 = iVar16 * 4" identifier = (binary_expression "iVar16 * 4" identifier * number_literal)) ;)) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) * 4" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) * number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "iVar9 = iVar9 + iVar19;" (assignment_expression "iVar9 = iVar9 + iVar19" identifier = (binary_expression "iVar9 + iVar19" identifier + identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar14 + iVar16);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar14 + iVar16)" identifier = (cast_expression "(undefined4 *)((int)puVar14 + iVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + iVar16)" ( (binary_expression "(int)puVar14 + iVar16" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "pdVar15 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar15 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0098))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0098)" * (pointer_expression "*(code **)(puVar28 + 0x1d0098)" * (cast_expression "(code **)(puVar28 + 0x1d0098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0098)" ( (binary_expression "puVar28 + 0x1d0098" identifier + number_literal) ))))) )) (argument_list "(uVar5,uVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" if (parenthesized_expression "(*(int *)(iVar46 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar46 + 0x328) != 0" (pointer_expression "*(int *)(iVar46 + 0x328)" * (cast_expression "(int *)(iVar46 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x328)" ( (binary_expression "iVar46 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar12 = piVar23[1];\n            uVar11 = uVar12 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar11;\n            *piVar23 = (uint)(uVar11 < uVar12) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" { (expression_statement "piVar23 = *(int **)(puVar18 + 7);" (assignment_expression "piVar23 = *(int **)(puVar18 + 7)" identifier = (pointer_expression "*(int **)(puVar18 + 7)" * (cast_expression "(int **)(puVar18 + 7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar28 + 0x1cfe84))();" (call_expression "(**(code **)(puVar28 + 0x1cfe84))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1cfe84))" ( (pointer_expression "**(code **)(puVar28 + 0x1cfe84)" * (pointer_expression "*(code **)(puVar28 + 0x1cfe84)" * (cast_expression "(code **)(puVar28 + 0x1cfe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cfe84)" ( (binary_expression "puVar28 + 0x1cfe84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar12 = piVar23[1];" (assignment_expression "uVar12 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x1cffd8);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x1cffd8)" identifier = (pointer_expression "*(code **)(puVar28 + 0x1cffd8)" * (cast_expression "(code **)(puVar28 + 0x1cffd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cffd8)" ( (binary_expression "puVar28 + 0x1cffd8" identifier + number_literal) ))))) ;) (expression_statement "piVar23[1] = uVar11;" (assignment_expression "piVar23[1] = uVar11" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar11 < uVar12) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar11 < uVar12) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar11 < uVar12) + *piVar23" (call_expression "(uint)(uVar11 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar12)" ( (binary_expression "uVar11 < uVar12" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf854))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf854)" * (pointer_expression "*(code **)(puVar28 + 0x1cf854)" * (cast_expression "(code **)(puVar28 + 0x1cf854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf854)" ( (binary_expression "puVar28 + 0x1cf854" identifier + number_literal) ))))) )) (argument_list "(iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" ( identifier , (binary_expression "iVar4 + -0x1350" identifier + number_literal) , (pointer_expression "**(undefined4 **)(puVar18 + 7)" * (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(puVar18 + 7))[1]" (parenthesized_expression "(*(undefined4 **)(puVar18 + 7))" ( (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar46 + 0x1c)" * (cast_expression "(undefined4 *)(iVar46 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 == 0) goto LAB_001d97e0;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d97e0;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar30 != iVar3)" ( (binary_expression "iVar30 != iVar3" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001d8e14(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001d8e14(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001d8e14(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "ulonglong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "double *pdVar14;" primitive_type (pointer_declarator "*pdVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "ulonglong *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "ulonglong *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined4 local_b4;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "ulonglong local_a8;" type_identifier identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar26 = (ulonglong *)*param_1;" (assignment_expression "puVar26 = (ulonglong *)*param_1" identifier = (cast_expression "(ulonglong *)*param_1" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(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 "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(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 "puVar28 = PTR_LAB_003a88e0;" (assignment_expression "puVar28 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;" (assignment_expression "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) / iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)((int)puVar26 + 0x1c) % iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" * (cast_expression "(int *)((int)puVar26 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "puVar18 = (ulonglong *)(iVar46 * iVar4);" (assignment_expression "puVar18 = (ulonglong *)(iVar46 * iVar4)" identifier = (cast_expression "(ulonglong *)(iVar46 * iVar4)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 * iVar4)" ( (binary_expression "iVar46 * iVar4" identifier * identifier) )))) ;) (expression_statement "iVar3 = (int)puVar18 + iVar3;" (assignment_expression "iVar3 = (int)puVar18 + iVar3" identifier = (binary_expression "(int)puVar18 + iVar3" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar46 = iVar46 + iVar3;" (assignment_expression "iVar46 = iVar46 + iVar3" identifier = (binary_expression "iVar46 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar46)" ( (binary_expression "iVar3 < iVar46" identifier < identifier) )) (compound_statement "{\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" { (expression_statement "iVar30 = param_1[6];" (assignment_expression "iVar30 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[1];" (assignment_expression "iVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = param_1[4];" (assignment_expression "uVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (ulonglong *)param_1[3];" (assignment_expression "puVar6 = (ulonglong *)param_1[3]" identifier = (cast_expression "(ulonglong *)param_1[3]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = param_1[2];" (assignment_expression "uVar7 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);" do (compound_statement "{\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" { (expression_statement "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (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 "(uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar26 + 3)" * (cast_expression "(undefined4 *)(puVar26 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar30 + 0x18)" * (cast_expression "(undefined4 *)(iVar30 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x18)" ( (binary_expression "iVar30 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" if (parenthesized_expression "((iVar8 == 0) || (iVar9 == 0))" ( (binary_expression "(iVar8 == 0) || (iVar9 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d9360:\n          param_1[7] = 0;\n        }" { (labeled_statement "LAB_001d9360:\n          param_1[7] = 0;" statement_identifier : (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" else (compound_statement "{\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" { (expression_statement "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);" (call_expression "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8)" (parenthesized_expression "(*(code *)PTR_GetPixelInfo_003a92b4)" ( (pointer_expression "*(code *)PTR_GetPixelInfo_003a92b4" * (cast_expression "(code *)PTR_GetPixelInfo_003a92b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar26,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "puVar1 = PTR_s_courses_003a88ec;" (assignment_expression "puVar1 = PTR_s_courses_003a88ec" identifier = identifier) ;) (if_statement "if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(puVar26 + 3))" ( (binary_expression "0 < *(int *)(puVar26 + 3)" number_literal < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));" do (compound_statement "{\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            }" { (expression_statement "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003a8ff4" * (cast_expression "(code *)PTR_ResetMagickMemory_003a8ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b8,0,0x58)" ( (pointer_expression "&local_b8" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_a8 = puVar26[0x49];" (assignment_expression "local_a8 = puVar26[0x49]" identifier = (subscript_expression "puVar26[0x49]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = *(undefined4 *)puVar26;" (assignment_expression "local_b8 = *(undefined4 *)puVar26" identifier = (pointer_expression "*(undefined4 *)puVar26" * (cast_expression "(undefined4 *)puVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_b4 = (undefined4)*puVar26;" (assignment_expression "local_b4 = (undefined4)*puVar26" identifier = (binary_expression "(undefined4)*puVar26" (parenthesized_expression "(undefined4)" ( identifier )) * identifier)) ;) (expression_statement "local_a0 = *(undefined4 *)(puVar26 + 4);" (assignment_expression "local_a0 = *(undefined4 *)(puVar26 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar26 + 4)" * (cast_expression "(undefined4 *)(puVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 4)" ( (binary_expression "puVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(int *)((int)puVar26 + 700);" (assignment_expression "local_b0 = *(int *)((int)puVar26 + 700)" identifier = (pointer_expression "*(int *)((int)puVar26 + 700)" * (cast_expression "(int *)((int)puVar26 + 700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 700)" ( (binary_expression "(int)puVar26 + 700" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_70 = dVar43;" (assignment_expression "local_70 = dVar43" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar10 = *(int *)(puVar26 + 0x5a);" (assignment_expression "iVar10 = *(int *)(puVar26 + 0x5a)" identifier = (pointer_expression "*(int *)(puVar26 + 0x5a)" * (cast_expression "(int *)(puVar26 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x5a)" ( (binary_expression "puVar26 + 0x5a" identifier + number_literal) ))))) ;) (expression_statement "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" { (expression_statement "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" { (expression_statement "local_b0 = 4;" (assignment_expression "local_b0 = 4" identifier = number_literal) ;) (expression_statement "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" * (cast_expression "(int *)(iVar10 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" { (expression_statement "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" * (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x44) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar10 + 0x44) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "uVar11 = 6;" (assignment_expression "uVar11 = 6" identifier = number_literal) ;) (if_statement "if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" if (parenthesized_expression "(*(uint *)(iVar4 + 8) < 7)" ( (binary_expression "*(uint *)(iVar4 + 8) < 7" (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" { (expression_statement "uVar11 = *(uint *)(iVar4 + 8);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 8)" identifier = (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) })) (if_statement "if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);" do (compound_statement "{\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                }" { (if_statement "if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" if (parenthesized_expression "(uVar15 < 5)" ( (binary_expression "uVar15 < 5" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58))" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" ( (binary_expression "&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar1 + uVar15 * 4 + -0x1120)" * (cast_expression "(int *)(puVar1 + uVar15 * 4 + -0x1120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar15 * 4 + -0x1120)" ( (binary_expression "puVar1 + uVar15 * 4 + -0x1120" (binary_expression "puVar1 + uVar15 * 4" identifier + (binary_expression "uVar15 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(*(undefined8 *)(puVar28 + 0x1a58))" ( (pointer_expression "*(undefined8 *)(puVar28 + 0x1a58)" * (cast_expression "(undefined8 *)(puVar28 + 0x1a58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1a58)" ( (binary_expression "puVar28 + 0x1a58" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != uVar11)" ( (binary_expression "uVar15 != uVar11" identifier != identifier) )) ;) })) (expression_statement "iVar10 = *(int *)(iVar30 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar30 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar30 + 0x2d0)" * (cast_expression "(int *)(iVar30 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2d0)" ( (binary_expression "iVar30 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar19 = *(int *)(iVar10 + 0x14)" identifier = (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(iVar10 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x20)" identifier = (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar21 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 8) * 4" identifier + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_90" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar19 * 4) = (float)local_88;" (assignment_expression "*(float *)(iVar9 + iVar19 * 4) = (float)local_88" (pointer_expression "*(float *)(iVar9 + iVar19 * 4)" * (cast_expression "(float *)(iVar9 + iVar19 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar19 * 4)" ( (binary_expression "iVar9 + iVar19 * 4" identifier + (binary_expression "iVar19 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_88" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)(iVar9 + iVar16 * 4) = (float)local_80;" (assignment_expression "*(float *)(iVar9 + iVar16 * 4) = (float)local_80" (pointer_expression "*(float *)(iVar9 + iVar16 * 4)" * (cast_expression "(float *)(iVar9 + iVar16 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar16 * 4)" ( (binary_expression "iVar9 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal)) )))) = (cast_expression "(float)local_80" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" { (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_78" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" { (expression_statement "fVar34 = (float)uVar31;" (assignment_expression "fVar34 = (float)uVar31" identifier = (cast_expression "(float)uVar31" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n                  fVar34 = (float)local_70;\n                }" { (expression_statement "fVar34 = (float)local_70;" (assignment_expression "fVar34 = (float)local_70" identifier = (cast_expression "(float)local_70" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar10 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier = (binary_expression "iVar8 + *(int *)(puVar26 + 0x58) * 4" identifier + (binary_expression "*(int *)(puVar26 + 0x58) * 4" (pointer_expression "*(int *)(puVar26 + 0x58)" * (cast_expression "(int *)(puVar26 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x58)" ( (binary_expression "puVar26 + 0x58" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;" (assignment_expression "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier = (binary_expression "iVar9 + *(int *)(iVar30 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar30 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar30 + 0x2c0)" * (cast_expression "(int *)(iVar30 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x2c0)" ( (binary_expression "iVar30 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar25 < *(int *)(puVar26 + 3))" ( (binary_expression "iVar25 < *(int *)(puVar26 + 3)" identifier < (pointer_expression "*(int *)(puVar26 + 3)" * (cast_expression "(int *)(puVar26 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 3)" ( (binary_expression "puVar26 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" (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 "(puVar6,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n            param_1[7] = 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[7] = 0;\n          }" { (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" if (parenthesized_expression "(*(int *)(puVar26 + 0x65) != 0)" ( (binary_expression "*(int *)(puVar26 + 0x65) != 0" (pointer_expression "*(int *)(puVar26 + 0x65)" * (cast_expression "(int *)(puVar26 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x65)" ( (binary_expression "puVar26 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" { (expression_statement "piVar23 = (int *)param_1[8];" (assignment_expression "piVar23 = (int *)param_1[8]" identifier = (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" 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 "puVar1 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar1 = PTR_GOMP_atomic_end_003a9438" identifier = identifier) ;) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar11)" ( (binary_expression "uVar15 < uVar11" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" (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 "(puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x1364" identifier + number_literal) , (pointer_expression "*(undefined4 *)param_1[8]" * (cast_expression "(undefined4 *)param_1[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)param_1[8])[1]" (parenthesized_expression "((undefined4 *)param_1[8])" ( (cast_expression "(undefined4 *)param_1[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)puVar26 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar26 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x1c)" ( (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) goto LAB_001d9360;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9360;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar46 != iVar3)" ( (binary_expression "iVar46 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (local_5c == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_5c == *(int *)puVar2)" ( (binary_expression "local_5c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar28 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar46 = *(int *)((int)puVar18 + 0x24);" (assignment_expression "iVar46 = *(int *)((int)puVar18 + 0x24)" identifier = (pointer_expression "*(int *)((int)puVar18 + 0x24)" * (cast_expression "(int *)((int)puVar18 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x24)" ( (binary_expression "(int)puVar18 + 0x24" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = (**(code **)(puVar28 + 0x1d04ac))();" (assignment_expression "iVar3 = (**(code **)(puVar28 + 0x1d04ac))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d04ac))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d04ac))" ( (pointer_expression "**(code **)(puVar28 + 0x1d04ac)" * (pointer_expression "*(code **)(puVar28 + 0x1d04ac)" * (cast_expression "(code **)(puVar28 + 0x1d04ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d04ac)" ( (binary_expression "puVar28 + 0x1d04ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(puVar28 + 0x1d00a8))();" (assignment_expression "iVar4 = (**(code **)(puVar28 + 0x1d00a8))()" identifier = (call_expression "(**(code **)(puVar28 + 0x1d00a8))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d00a8))" ( (pointer_expression "**(code **)(puVar28 + 0x1d00a8)" * (pointer_expression "*(code **)(puVar28 + 0x1d00a8)" * (cast_expression "(code **)(puVar28 + 0x1d00a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d00a8)" ( (binary_expression "puVar28 + 0x1d00a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;" (assignment_expression "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) / iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3" identifier = (binary_expression "*(int *)(iVar46 + 0x1c) % iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" * (cast_expression "(int *)(iVar46 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar30 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar30 * iVar4 + iVar3" identifier = (binary_expression "iVar30 * iVar4 + iVar3" (binary_expression "iVar30 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar30 = iVar30 + iVar3;" (assignment_expression "iVar30 = iVar30 + iVar3" identifier = (binary_expression "iVar30 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar30)" ( (binary_expression "iVar3 < iVar30" identifier < identifier) )) (compound_statement "{\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" { (expression_statement "uVar31 = *puVar18;" (assignment_expression "uVar31 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "dVar44 = (double)puVar18[1];" (assignment_expression "dVar44 = (double)puVar18[1]" identifier = (cast_expression "(double)puVar18[1]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "puVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = *(int *)(puVar18 + 5);" (assignment_expression "iVar8 = *(int *)(puVar18 + 5)" identifier = (pointer_expression "*(int *)(puVar18 + 5)" * (cast_expression "(int *)(puVar18 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 5)" ( (binary_expression "puVar18 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar18 + 4);" (assignment_expression "uVar27 = *(undefined4 *)(puVar18 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(undefined4 *)((int)puVar18 + 0x14);" (assignment_expression "uVar24 = *(undefined4 *)((int)puVar18 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x14)" ( (binary_expression "(int)puVar18 + 0x14" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);" (assignment_expression "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1ab8" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar28 + 0x1cf48c);" (assignment_expression "iVar4 = *(int *)(puVar28 + 0x1cf48c)" identifier = (pointer_expression "*(int *)(puVar28 + 0x1cf48c)" * (cast_expression "(int *)(puVar28 + 0x1cf48c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf48c)" ( (binary_expression "puVar28 + 0x1cf48c" identifier + number_literal) ))))) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1400)" ( (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1400" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" * (cast_expression "(int *)(puVar28 + 0x1cf480)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x1cf480)" ( (binary_expression "puVar28 + 0x1cf480" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)puVar18 + 0x1c)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x1c)" ( (binary_expression "(int)puVar18 + 0x1c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(puVar18 + 3);" (assignment_expression "uVar7 = *(undefined4 *)(puVar18 + 3)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 3)" * (cast_expression "(undefined4 *)(puVar18 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 3)" ( (binary_expression "puVar18 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar18 + 2);" (assignment_expression "uVar12 = *(undefined4 *)(puVar18 + 2)" identifier = (pointer_expression "*(undefined4 *)(puVar18 + 2)" * (cast_expression "(undefined4 *)(puVar18 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);" do (compound_statement "{\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" { (if_statement "if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)puVar18 + 0x34) != 0)" ( (binary_expression "*(int *)((int)puVar18 + 0x34) != 0" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" { (expression_statement "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);" (assignment_expression "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" identifier = (cast_expression "(undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d01fc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d01fc)" * (pointer_expression "*(code **)(puVar28 + 0x1d01fc)" * (cast_expression "(code **)(puVar28 + 0x1d01fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d01fc)" ( (binary_expression "puVar28 + 0x1d01fc" identifier + number_literal) ))))) )) (argument_list "(uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar46 + 0x18)" * (cast_expression "(undefined4 *)(iVar46 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf7f0))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf7f0)" * (pointer_expression "*(code **)(puVar28 + 0x1cf7f0)" * (cast_expression "(code **)(puVar28 + 0x1cf7f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf7f0)" ( (binary_expression "puVar28 + 0x1cf7f0" identifier + number_literal) ))))) )) (argument_list "(uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" if (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (iVar9 == 0))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (iVar9 == 0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }" { (labeled_statement "LAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) }) (else_clause "else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" else (compound_statement "{\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" { (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];" (assignment_expression "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1]" identifier = (binary_expression "((double)iVar3 - pdVar14[1]) * pdVar17[1]" (parenthesized_expression "((double)iVar3 - pdVar14[1])" ( (binary_expression "(double)iVar3 - pdVar14[1]" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "pdVar14[1]" identifier [ number_literal ])) )) * (subscript_expression "pdVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "dVar41 = dVar38 * dVar38;" (assignment_expression "dVar41 = dVar38 * dVar38" identifier = (binary_expression "dVar38 * dVar38" identifier * identifier)) ;) (expression_statement "dVar40 = dVar44 * dVar44;" (assignment_expression "dVar40 = dVar44 * dVar44" identifier = (binary_expression "dVar44 * dVar44" identifier * identifier)) ;) (expression_statement "dVar42 = 0.0;" (assignment_expression "dVar42 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );" do (compound_statement "{\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            }" { (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" identifier = (pointer_expression "*pdVar14" * identifier)) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar45 = ((double)iVar10 - dVar36) * dVar35;" (assignment_expression "dVar45 = ((double)iVar10 - dVar36) * dVar35" identifier = (binary_expression "((double)iVar10 - dVar36) * dVar35" (parenthesized_expression "((double)iVar10 - dVar36)" ( (binary_expression "(double)iVar10 - dVar36" (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier) - identifier) )) * identifier)) ;) (expression_statement "dVar37 = dVar45 * dVar45 + dVar41;" (assignment_expression "dVar37 = dVar45 * dVar45 + dVar41" identifier = (binary_expression "dVar45 * dVar45 + dVar41" (binary_expression "dVar45 * dVar45" identifier * identifier) + identifier)) ;) (if_statement "if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" if (parenthesized_expression "(dVar40 <= dVar37)" ( (binary_expression "dVar40 <= dVar37" identifier <= identifier) )) (compound_statement "{\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 < 1) goto LAB_001d9670;" if (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001d9670;" goto statement_identifier ;)) (expression_statement "piVar22 = *(int **)(iVar46 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar46 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar46 + 0x2d0)" * (cast_expression "(int **)(iVar46 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar46 + 0x2d0)" ( (binary_expression "iVar46 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2d0)" * (cast_expression "(int *)(iVar8 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = piVar22;" (assignment_expression "piVar23 = piVar22" identifier = identifier) ;) (expression_statement "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" identifier = identifier) ;) (do_statement "do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);" do (compound_statement "{\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                }" { (expression_statement "iVar21 = iVar19 + *piVar23 * 0xc;" (assignment_expression "iVar21 = iVar19 + *piVar23 * 0xc" identifier = (binary_expression "iVar19 + *piVar23 * 0xc" identifier + (binary_expression "*piVar23 * 0xc" (pointer_expression "*piVar23" * identifier) * number_literal))) ;) (if_statement "if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" if (parenthesized_expression "((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0))" ( (binary_expression "(piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)" (parenthesized_expression "(piVar22[*piVar23 * 3 + 1] != 0)" ( (binary_expression "piVar22[*piVar23 * 3 + 1] != 0" (subscript_expression "piVar22[*piVar23 * 3 + 1]" identifier [ (binary_expression "*piVar23 * 3 + 1" (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar21 + 4) != 0)" ( (binary_expression "*(int *)(iVar21 + 4) != 0" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" { (expression_statement "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;" (assignment_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20" (pointer_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + *(int *)(iVar21 + 8) * 4)" ( (binary_expression "iVar9 + *(int *)(iVar21 + 8) * 4" identifier + (binary_expression "*(int *)(iVar21 + 8) * 4" (pointer_expression "*(int *)(iVar21 + 8)" * (cast_expression "(int *)(iVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar20" * identifier)) ;) })) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" identifier = (binary_expression "piVar23 + 3" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar22 + iVar16 * 3)" ( (binary_expression "piVar23 != piVar22 + iVar16 * 3" identifier != (binary_expression "piVar22 + iVar16 * 3" identifier + (binary_expression "iVar16 * 3" identifier * number_literal))) )) ;) (expression_statement "iVar16 = iVar16 << 2;" (assignment_expression "iVar16 = iVar16 << 2" identifier = (binary_expression "iVar16 << 2" identifier << number_literal)) ;) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) << 2;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) << 2" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) << 2" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) << number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" else (compound_statement "{\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" { (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (if_statement "if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" { (if_statement "if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" if (parenthesized_expression "(dVar37 < dVar42)" ( (binary_expression "dVar37 < dVar42" identifier < identifier) )) (compound_statement "{\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" { (expression_statement "(**(code **)(puVar28 + 0x1d0020))();" (call_expression "(**(code **)(puVar28 + 0x1d0020))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0020))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0020)" * (pointer_expression "*(code **)(puVar28 + 0x1d0020)" * (cast_expression "(code **)(puVar28 + 0x1d0020)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0020)" ( (binary_expression "puVar28 + 0x1d0020" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) })) (expression_statement "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);" (assignment_expression "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf8e4))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf8e4)" * (pointer_expression "*(code **)(puVar28 + 0x1cf8e4)" * (cast_expression "(code **)(puVar28 + 0x1cf8e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf8e4)" ( (binary_expression "puVar28 + 0x1cf8e4" identifier + number_literal) ))))) )) (argument_list "(((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" ( (binary_expression "((SQRT(dVar37) * dVar43) / dVar44) * dVar32" (parenthesized_expression "((SQRT(dVar37) * dVar43) / dVar44)" ( (binary_expression "(SQRT(dVar37) * dVar43) / dVar44" (parenthesized_expression "(SQRT(dVar37) * dVar43)" ( (binary_expression "SQRT(dVar37) * dVar43" (call_expression "SQRT(dVar37)" identifier (argument_list "(dVar37)" ( identifier ))) * identifier) )) / identifier) )) * identifier) )))) ;) (expression_statement "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);" (assignment_expression "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" identifier = (cast_expression "(double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d02bc))" ( (pointer_expression "**(code **)(puVar28 + 0x1d02bc)" * (pointer_expression "*(code **)(puVar28 + 0x1d02bc)" * (cast_expression "(code **)(puVar28 + 0x1d02bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d02bc)" ( (binary_expression "puVar28 + 0x1d02bc" identifier + number_literal) ))))) )) (argument_list "(uVar33,uVar31 ^ 0x8000000000000000)" ( identifier , (binary_expression "uVar31 ^ 0x8000000000000000" identifier ^ number_literal) ))))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = dVar45 * dVar38;" (assignment_expression "dVar45 = dVar45 * dVar38" identifier = (binary_expression "dVar45 * dVar38" identifier * identifier)) ;) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" identifier = (pointer_expression "*pdVar17" * identifier)) ;) (expression_statement "dVar38 = dVar39 * dVar38;" (assignment_expression "dVar38 = dVar39 * dVar38" identifier = (binary_expression "dVar39 * dVar38" identifier * identifier)) ;) (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" identifier = (pointer_expression "*pdVar14" * identifier)) ;) })) (expression_statement "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);" (assignment_expression "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0088))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0088)" * (pointer_expression "*(code **)(puVar28 + 0x1d0088)" * (cast_expression "(code **)(puVar28 + 0x1d0088)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0088)" ( (binary_expression "puVar28 + 0x1d0088" identifier + number_literal) ))))) )) (argument_list "(iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" ( identifier , identifier , identifier , identifier , (binary_expression "dVar45 / dVar35 + dVar36" (binary_expression "dVar45 / dVar35" identifier / identifier) + identifier) , (binary_expression "dVar38 / pdVar17[1] + pdVar14[1]" (binary_expression "dVar38 / pdVar17[1]" identifier / (subscript_expression "pdVar17[1]" identifier [ number_literal ])) + (subscript_expression "pdVar14[1]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "*(int *)((int)puVar18 + 0x34) = iVar25;" (assignment_expression "*(int *)((int)puVar18 + 0x34) = iVar25" (pointer_expression "*(int *)((int)puVar18 + 0x34)" * (cast_expression "(int *)((int)puVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar46 + 0x2c0)" * (cast_expression "(int *)(iVar46 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x2c0)" ( (binary_expression "iVar46 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" identifier = (pointer_expression "*(int *)(iVar46 + 0x18)" * (cast_expression "(int *)(iVar46 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x18)" ( (binary_expression "iVar46 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = dVar39;" (assignment_expression "dVar38 = dVar39" identifier = identifier) ;) (labeled_statement "LAB_001d9670:\n                iVar16 = iVar16 * 4;" statement_identifier : (expression_statement "iVar16 = iVar16 * 4;" (assignment_expression "iVar16 = iVar16 * 4" identifier = (binary_expression "iVar16 * 4" identifier * number_literal)) ;)) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) * 4" identifier = (binary_expression "*(int *)(iVar8 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) )))) * number_literal)) ;) (if_statement "if (iVar25 <= iVar10 + 1) break;" if (parenthesized_expression "(iVar25 <= iVar10 + 1)" ( (binary_expression "iVar25 <= iVar10 + 1" identifier <= (binary_expression "iVar10 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "iVar9 = iVar9 + iVar19;" (assignment_expression "iVar9 = iVar9 + iVar19" identifier = (binary_expression "iVar9 + iVar19" identifier + identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)((int)puVar13 + iVar16);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar13 + iVar16)" identifier = (cast_expression "(undefined4 *)((int)puVar13 + iVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar16)" ( (binary_expression "(int)puVar13 + iVar16" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" identifier = (pointer_expression "*(double **)(puVar18 + 6)" * (cast_expression "(double **)(puVar18 + 6)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) ))))) ;) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" identifier = (pointer_expression "*(double **)((int)puVar18 + 0x2c)" * (cast_expression "(double **)((int)puVar18 + 0x2c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar18 + 0x2c)" ( (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" identifier = (call_expression "(**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0098))" ( (pointer_expression "**(code **)(puVar28 + 0x1d0098)" * (pointer_expression "*(code **)(puVar28 + 0x1d0098)" * (cast_expression "(code **)(puVar28 + 0x1d0098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1d0098)" ( (binary_expression "puVar28 + 0x1d0098" identifier + number_literal) ))))) )) (argument_list "(uVar5,uVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" * (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + 0x34)" ( (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" if (parenthesized_expression "(*(int *)(iVar46 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar46 + 0x328) != 0" (pointer_expression "*(int *)(iVar46 + 0x328)" * (cast_expression "(int *)(iVar46 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x328)" ( (binary_expression "iVar46 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" { (expression_statement "piVar23 = *(int **)(puVar18 + 7);" (assignment_expression "piVar23 = *(int **)(puVar18 + 7)" identifier = (pointer_expression "*(int **)(puVar18 + 7)" * (cast_expression "(int **)(puVar18 + 7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar28 + 0x1cfe84))();" (call_expression "(**(code **)(puVar28 + 0x1cfe84))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1cfe84))" ( (pointer_expression "**(code **)(puVar28 + 0x1cfe84)" * (pointer_expression "*(code **)(puVar28 + 0x1cfe84)" * (cast_expression "(code **)(puVar28 + 0x1cfe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cfe84)" ( (binary_expression "puVar28 + 0x1cfe84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x1cffd8);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x1cffd8)" identifier = (pointer_expression "*(code **)(puVar28 + 0x1cffd8)" * (cast_expression "(code **)(puVar28 + 0x1cffd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cffd8)" ( (binary_expression "puVar28 + 0x1cffd8" identifier + number_literal) ))))) ;) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" * identifier) = (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar11)" ( (binary_expression "uVar15 < uVar11" identifier < identifier) ))) + (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" identifier = (call_expression "(**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf854))" ( (pointer_expression "**(code **)(puVar28 + 0x1cf854)" * (pointer_expression "*(code **)(puVar28 + 0x1cf854)" * (cast_expression "(code **)(puVar28 + 0x1cf854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x1cf854)" ( (binary_expression "puVar28 + 0x1cf854" identifier + number_literal) ))))) )) (argument_list "(iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" ( identifier , (binary_expression "iVar4 + -0x1350" identifier + number_literal) , (pointer_expression "**(undefined4 **)(puVar18 + 7)" * (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(puVar18 + 7))[1]" (parenthesized_expression "(*(undefined4 **)(puVar18 + 7))" ( (pointer_expression "*(undefined4 **)(puVar18 + 7)" * (cast_expression "(undefined4 **)(puVar18 + 7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar46 + 0x1c)" * (cast_expression "(undefined4 *)(iVar46 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0x1c)" ( (binary_expression "iVar46 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 == 0) goto LAB_001d97e0;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d97e0;" goto statement_identifier ;)) })) }))) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar30 != iVar3)" ( (binary_expression "iVar30 != iVar3" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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)) )))))) ;) (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) ) (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)) )))))) ;) })) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_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 = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (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)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 + (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)) ;) })) (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) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (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)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) )) * (subscript_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 = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) != LIT) )) && (parenthesized_expression ( (binary_expression (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)) )))) = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * IDENT) )) / IDENT) )) * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT ^ LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression (binary_expression IDENT / IDENT) + IDENT) , (binary_expression (binary_expression IDENT / (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ])) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 (cast_expression ( (type_descriptor TYPE) ) 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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_001d8e14(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d8e14(undefined4 *param_1)" (identifier "FUN_001d8e14") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  ulonglong *puVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  uint uVar15;\n  int iVar16;\n  double *pdVar17;\n  ulonglong *puVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 uVar24;\n  int iVar25;\n  ulonglong *puVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  int iVar30;\n  float fVar34;\n  ulonglong uVar31;\n  double dVar32;\n  undefined8 uVar33;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  double dVar45;\n  int iVar46;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  int local_b0;\n  ulonglong local_a8;\n  undefined4 local_a0;\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  int local_5c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar26 = (ulonglong *)*param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  puVar28 = PTR_LAB_003a88e0;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;\n  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }\n  puVar18 = (ulonglong *)(iVar46 * iVar4);\n  iVar3 = (int)puVar18 + iVar3;\n  iVar46 = iVar46 + iVar3;\n  if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }\n  if (local_5c == *(int *)puVar2) {\n    return;\n  }\n  puVar28 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  iVar46 = *(int *)((int)puVar18 + 0x24);\n  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();\n  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;\n  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar30 * iVar4 + iVar3;\n  iVar30 = iVar30 + iVar3;\n  if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "ulonglong *puVar6;" (type_identifier "ulonglong") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "double *pdVar14;" (primitive_type "double") (pointer_declarator "*pdVar14" (* "*") (identifier "pdVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "double *pdVar17;" (primitive_type "double") (pointer_declarator "*pdVar17" (* "*") (identifier "pdVar17")) (; ";")) (declaration "ulonglong *puVar18;" (type_identifier "ulonglong") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "ulonglong *puVar26;" (type_identifier "ulonglong") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "undefined *puVar28;" (type_identifier "undefined") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "float fVar34;" (primitive_type "float") (identifier "fVar34") (; ";")) (declaration "ulonglong uVar31;" (type_identifier "ulonglong") (identifier "uVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "undefined8 uVar33;" (type_identifier "undefined8") (identifier "uVar33") (; ";")) (declaration "double dVar35;" (primitive_type "double") (identifier "dVar35") (; ";")) (declaration "double dVar36;" (primitive_type "double") (identifier "dVar36") (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "double dVar39;" (primitive_type "double") (identifier "dVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "double dVar43;" (primitive_type "double") (identifier "dVar43") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "double dVar45;" (primitive_type "double") (identifier "dVar45") (; ";")) (declaration "int iVar46;" (primitive_type "int") (identifier "iVar46") (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "undefined4 local_b4;" (type_identifier "undefined4") (identifier "local_b4") (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "ulonglong local_a8;" (type_identifier "ulonglong") (identifier "local_a8") (; ";")) (declaration "undefined4 local_a0;" (type_identifier "undefined4") (identifier "local_a0") (; ";")) (declaration "double local_90;" (primitive_type "double") (identifier "local_90") (; ";")) (declaration "double local_88;" (primitive_type "double") (identifier "local_88") (; ";")) (declaration "double local_80;" (primitive_type "double") (identifier "local_80") (; ";")) (declaration "double local_78;" (primitive_type "double") (identifier "local_78") (; ";")) (declaration "double local_70;" (primitive_type "double") (identifier "local_70") (; ";")) (declaration "double local_68;" (primitive_type "double") (identifier "local_68") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_5c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "puVar26 = (ulonglong *)*param_1;" (assignment_expression "puVar26 = (ulonglong *)*param_1" (identifier "puVar26") (= "=") (cast_expression "(ulonglong *)*param_1" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)()" (identifier "iVar3") (= "=") (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 "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar4") (= "=") (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 "puVar28 = PTR_LAB_003a88e0;" (assignment_expression "puVar28 = PTR_LAB_003a88e0" (identifier "puVar28") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;" (assignment_expression "iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3" (identifier "iVar46") (= "=") (binary_expression "*(int *)((int)puVar26 + 0x1c) / iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" (* "*") (cast_expression "(int *)((int)puVar26 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x1c)" (( "(") (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3" (identifier "iVar3") (= "=") (binary_expression "*(int *)((int)puVar26 + 0x1c) % iVar3" (pointer_expression "*(int *)((int)puVar26 + 0x1c)" (* "*") (cast_expression "(int *)((int)puVar26 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x1c)" (( "(") (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar3) {\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar3)" (( "(") (binary_expression "iVar4 < iVar3" (identifier "iVar4") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar46 = iVar46 + 1;\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" (identifier "iVar46") (= "=") (binary_expression "iVar46 + 1" (identifier "iVar46") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "puVar18 = (ulonglong *)(iVar46 * iVar4);" (assignment_expression "puVar18 = (ulonglong *)(iVar46 * iVar4)" (identifier "puVar18") (= "=") (cast_expression "(ulonglong *)(iVar46 * iVar4)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 * iVar4)" (( "(") (binary_expression "iVar46 * iVar4" (identifier "iVar46") (* "*") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)puVar18 + iVar3;" (assignment_expression "iVar3 = (int)puVar18 + iVar3" (identifier "iVar3") (= "=") (binary_expression "(int)puVar18 + iVar3" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar46 = iVar46 + iVar3;" (assignment_expression "iVar46 = iVar46 + iVar3" (identifier "iVar46") (= "=") (binary_expression "iVar46 + iVar3" (identifier "iVar46") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < iVar46) {\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 < iVar46)" (( "(") (binary_expression "iVar3 < iVar46" (identifier "iVar3") (< "<") (identifier "iVar46")) () ")")) (compound_statement "{\n    iVar30 = param_1[6];\n    iVar4 = param_1[1];\n    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n    uVar5 = param_1[4];\n    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n    puVar6 = (ulonglong *)param_1[3];\n    uVar7 = param_1[2];\n    do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);\n  }" ({ "{") (expression_statement "iVar30 = param_1[6];" (assignment_expression "iVar30 = param_1[6]" (identifier "iVar30") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar4 = param_1[1];" (assignment_expression "iVar4 = param_1[1]" (identifier "iVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar43") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "uVar5 = param_1[4];" (assignment_expression "uVar5 = param_1[4]" (identifier "uVar5") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "uVar31") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "puVar6 = (ulonglong *)param_1[3];" (assignment_expression "puVar6 = (ulonglong *)param_1[3]" (identifier "puVar6") (= "=") (cast_expression "(ulonglong *)param_1[3]" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar7 = param_1[2];" (assignment_expression "uVar7 = param_1[2]" (identifier "uVar7") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (do_statement "do {\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar46 != iVar3);" (do "do") (compound_statement "{\n      if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" ({ "{") (if_statement "if (param_1[7] != 0) {\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(param_1[7] != 0)" (( "(") (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);\n        puVar18 = puVar6;\n        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);\n        if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)\n                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (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 "(uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7)" (( "(") (identifier "uVar5") (, ",") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (pointer_expression "*(undefined4 *)(puVar26 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar26 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 3)" (( "(") (binary_expression "puVar26 + 3" (identifier "puVar26") (+ "+") (number_literal "3")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" (identifier "puVar18") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);" (assignment_expression "iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003a964c" (* "*") (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003a964c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewAuthenticPixels_003a964c"))) () ")")) (argument_list "(puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7)" (( "(") (identifier "puVar6") (, ",") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (pointer_expression "*(undefined4 *)(iVar30 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar30 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x18)" (( "(") (binary_expression "iVar30 + 0x18" (identifier "iVar30") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if ((iVar8 == 0) || (iVar9 == 0)) {\nLAB_001d9360:\n          param_1[7] = 0;\n        }\n        else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" (if "if") (parenthesized_expression "((iVar8 == 0) || (iVar9 == 0))" (( "(") (binary_expression "(iVar8 == 0) || (iVar9 == 0)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_001d9360:\n          param_1[7] = 0;\n        }" ({ "{") (labeled_statement "LAB_001d9360:\n          param_1[7] = 0;" (statement_identifier "LAB_001d9360") (: ":") (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);\n          puVar1 = PTR_s_courses_003a88ec;\n          if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }\n          puVar18 = puVar6;\n          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);\n          if (iVar8 == 0) {\n            param_1[7] = 0;\n          }\n          if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }\n        }" ({ "{") (expression_statement "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);" (call_expression "(*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8)" (parenthesized_expression "(*(code *)PTR_GetPixelInfo_003a92b4)" (( "(") (pointer_expression "*(code *)PTR_GetPixelInfo_003a92b4" (* "*") (cast_expression "(code *)PTR_GetPixelInfo_003a92b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetPixelInfo_003a92b4"))) () ")")) (argument_list "(puVar26,&local_b8)" (( "(") (identifier "puVar26") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))) (; ";")) (expression_statement "puVar1 = PTR_s_courses_003a88ec;" (assignment_expression "puVar1 = PTR_s_courses_003a88ec" (identifier "puVar1") (= "=") (identifier "PTR_s_courses_003a88ec")) (; ";")) (if_statement "if (0 < *(int *)(puVar26 + 3)) {\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(puVar26 + 3))" (( "(") (binary_expression "0 < *(int *)(puVar26 + 3)" (number_literal "0") (< "<") (pointer_expression "*(int *)(puVar26 + 3)" (* "*") (cast_expression "(int *)(puVar26 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 3)" (( "(") (binary_expression "puVar26 + 3" (identifier "puVar26") (+ "+") (number_literal "3")) () ")"))))) () ")")) (compound_statement "{\n            iVar25 = 0;\n            do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));\n          }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            } while (iVar25 < *(int *)(puVar26 + 3));" (do "do") (compound_statement "{\n              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);\n              local_a8 = puVar26[0x49];\n              local_b8 = *(undefined4 *)puVar26;\n              local_b4 = (undefined4)*puVar26;\n              local_a0 = *(undefined4 *)(puVar26 + 4);\n              local_b0 = *(int *)((int)puVar26 + 700);\n              local_70 = dVar43;\n              if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n              uVar11 = 6;\n              if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }\n              if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }\n              iVar10 = *(int *)(iVar30 + 0x2d0);\n              iVar19 = *(int *)(iVar10 + 0x14);\n              iVar16 = *(int *)(iVar10 + 0x20);\n              iVar21 = *(int *)(iVar10 + 0x28);\n              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;\n              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;\n              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;\n              if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }\n              if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }\n              iVar25 = iVar25 + 1;\n              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;\n              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;\n            }" ({ "{") (expression_statement "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003a8ff4)" (( "(") (pointer_expression "*(code *)PTR_ResetMagickMemory_003a8ff4" (* "*") (cast_expression "(code *)PTR_ResetMagickMemory_003a8ff4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ResetMagickMemory_003a8ff4"))) () ")")) (argument_list "(&local_b8,0,0x58)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "local_a8 = puVar26[0x49];" (assignment_expression "local_a8 = puVar26[0x49]" (identifier "local_a8") (= "=") (subscript_expression "puVar26[0x49]" (identifier "puVar26") ([ "[") (number_literal "0x49") (] "]"))) (; ";")) (expression_statement "local_b8 = *(undefined4 *)puVar26;" (assignment_expression "local_b8 = *(undefined4 *)puVar26" (identifier "local_b8") (= "=") (pointer_expression "*(undefined4 *)puVar26" (* "*") (cast_expression "(undefined4 *)puVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar26")))) (; ";")) (expression_statement "local_b4 = (undefined4)*puVar26;" (assignment_expression "local_b4 = (undefined4)*puVar26" (identifier "local_b4") (= "=") (binary_expression "(undefined4)*puVar26" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (* "*") (identifier "puVar26"))) (; ";")) (expression_statement "local_a0 = *(undefined4 *)(puVar26 + 4);" (assignment_expression "local_a0 = *(undefined4 *)(puVar26 + 4)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined4 *)(puVar26 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar26 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 4)" (( "(") (binary_expression "puVar26 + 4" (identifier "puVar26") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_b0 = *(int *)((int)puVar26 + 700);" (assignment_expression "local_b0 = *(int *)((int)puVar26 + 700)" (identifier "local_b0") (= "=") (pointer_expression "*(int *)((int)puVar26 + 700)" (* "*") (cast_expression "(int *)((int)puVar26 + 700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 700)" (( "(") (binary_expression "(int)puVar26 + 700" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "700")) () ")"))))) (; ";")) (expression_statement "local_70 = dVar43;" (assignment_expression "local_70 = dVar43" (identifier "local_70") (= "=") (identifier "dVar43")) (; ";")) (if_statement "if (iVar8 != 0) {\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar10 = *(int *)(puVar26 + 0x5a);\n                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);\n                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);\n                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar26 + 0x5a);" (assignment_expression "iVar10 = *(int *)(puVar26 + 0x5a)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar26 + 0x5a)" (* "*") (cast_expression "(int *)(puVar26 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x5a)" (( "(") (binary_expression "puVar26 + 0x5a" (identifier "puVar26") (+ "+") (number_literal "0x5a")) () ")"))))) (; ";")) (expression_statement "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" (identifier "local_90") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 8) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" (identifier "local_88") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 0x14) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" (identifier "local_80") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 0x20) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);\n                }" ({ "{") (expression_statement "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" (identifier "local_78") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 0x2c) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" (* "*") (cast_expression "(int *)(iVar10 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_b0 = 4;\n                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);\n                }" ({ "{") (expression_statement "local_b0 = 4;" (assignment_expression "local_b0 = 4" (identifier "local_b0") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" (identifier "local_70") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 0x38) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" (* "*") (cast_expression "(int *)(iVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" (* "*") (cast_expression "(int *)(iVar10 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);\n                }" ({ "{") (expression_statement "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" (identifier "local_68") (= "=") (cast_expression "(double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" (* "*") (cast_expression "(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (binary_expression "iVar8 + *(int *)(iVar10 + 0x44) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" (* "*") (cast_expression "(int *)(iVar10 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x44)" (( "(") (binary_expression "iVar10 + 0x44" (identifier "iVar10") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar11 = 6;" (assignment_expression "uVar11 = 6" (identifier "uVar11") (= "=") (number_literal "6")) (; ";")) (if_statement "if (*(uint *)(iVar4 + 8) < 7) {\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" (if "if") (parenthesized_expression "(*(uint *)(iVar4 + 8) < 7)" (( "(") (binary_expression "*(uint *)(iVar4 + 8) < 7" (pointer_expression "*(uint *)(iVar4 + 8)" (* "*") (cast_expression "(uint *)(iVar4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n                uVar11 = *(uint *)(iVar4 + 8);\n              }" ({ "{") (expression_statement "uVar11 = *(uint *)(iVar4 + 8);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(iVar4 + 8)" (* "*") (cast_expression "(uint *)(iVar4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar11 != 0) {\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar15 = 0;\n                do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);\n              }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                } while (uVar15 != uVar11);" (do "do") (compound_statement "{\n                  if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }\n                  uVar15 = uVar15 + 1;\n                }" ({ "{") (if_statement "if (uVar15 < 5) {\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" (if "if") (parenthesized_expression "(uVar15 < 5)" (( "(") (binary_expression "uVar15 < 5" (identifier "uVar15") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));\n                    return;\n                  }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58));" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))\n                              (*(undefined8 *)(puVar28 + 0x1a58))" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar1 + uVar15 * 4 + -0x1120)" (* "*") (cast_expression "(int *)(puVar1 + uVar15 * 4 + -0x1120)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + uVar15 * 4 + -0x1120)" (( "(") (binary_expression "puVar1 + uVar15 * 4 + -0x1120" (binary_expression "puVar1 + uVar15 * 4" (identifier "puVar1") (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x1120")) () ")"))))) () ")")))) () ")")) (argument_list "(*(undefined8 *)(puVar28 + 0x1a58))" (( "(") (pointer_expression "*(undefined8 *)(puVar28 + 0x1a58)" (* "*") (cast_expression "(undefined8 *)(puVar28 + 0x1a58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x1a58)" (( "(") (binary_expression "puVar28 + 0x1a58" (identifier "puVar28") (+ "+") (number_literal "0x1a58")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar15 + 1" (identifier "uVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 != uVar11)" (( "(") (binary_expression "uVar15 != uVar11" (identifier "uVar15") (!= "!=") (identifier "uVar11")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar30 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar30 + 0x2d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar30 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar30 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x2d0)" (( "(") (binary_expression "iVar30 + 0x2d0" (identifier "iVar30") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar19 = *(int *)(iVar10 + 0x14)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar16 = *(int *)(iVar10 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x20)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar21 = *(int *)(iVar10 + 0x28)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar10 + 8) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_90" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_90"))) (; ";")) (expression_statement "*(float *)(iVar9 + iVar19 * 4) = (float)local_88;" (assignment_expression "*(float *)(iVar9 + iVar19 * 4) = (float)local_88" (pointer_expression "*(float *)(iVar9 + iVar19 * 4)" (* "*") (cast_expression "(float *)(iVar9 + iVar19 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar19 * 4)" (( "(") (binary_expression "iVar9 + iVar19 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar19 * 4" (identifier "iVar19") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_88" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_88"))) (; ";")) (expression_statement "*(float *)(iVar9 + iVar16 * 4) = (float)local_80;" (assignment_expression "*(float *)(iVar9 + iVar16 * 4) = (float)local_80" (pointer_expression "*(float *)(iVar9 + iVar16 * 4)" (* "*") (cast_expression "(float *)(iVar9 + iVar16 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar16 * 4)" (( "(") (binary_expression "iVar9 + iVar16 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_80" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_80"))) (; ";")) (if_statement "if (iVar21 != 0) {\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" (if "if") (parenthesized_expression "(iVar21 != 0)" (( "(") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;\n              }" ({ "{") (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar10 + 0x2c) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_78" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_78"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" (* "*") (cast_expression "(int *)(iVar10 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                fVar34 = (float)uVar31;\n                if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }\n                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;\n              }" ({ "{") (expression_statement "fVar34 = (float)uVar31;" (assignment_expression "fVar34 = (float)uVar31" (identifier "fVar34") (= "=") (cast_expression "(float)uVar31" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar31"))) (; ";")) (if_statement "if (local_b0 != 0) {\n                  fVar34 = (float)local_70;\n                }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar34 = (float)local_70;\n                }" ({ "{") (expression_statement "fVar34 = (float)local_70;" (assignment_expression "fVar34 = (float)local_70" (identifier "fVar34") (= "=") (cast_expression "(float)local_70" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_70"))) (; ";")) (} "}"))) (expression_statement "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;" (assignment_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34" (pointer_expression "*(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar10 + 0x38) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" (* "*") (cast_expression "(int *)(iVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "fVar34")) (; ";")) (} "}"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4" (identifier "iVar8") (= "=") (binary_expression "iVar8 + *(int *)(puVar26 + 0x58) * 4" (identifier "iVar8") (+ "+") (binary_expression "*(int *)(puVar26 + 0x58) * 4" (pointer_expression "*(int *)(puVar26 + 0x58)" (* "*") (cast_expression "(int *)(puVar26 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x58)" (( "(") (binary_expression "puVar26 + 0x58" (identifier "puVar26") (+ "+") (number_literal "0x58")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;" (assignment_expression "iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + *(int *)(iVar30 + 0x2c0) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar30 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar30 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar30 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x2c0)" (( "(") (binary_expression "iVar30 + 0x2c0" (identifier "iVar30") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < *(int *)(puVar26 + 3))" (( "(") (binary_expression "iVar25 < *(int *)(puVar26 + 3)" (identifier "iVar25") (< "<") (pointer_expression "*(int *)(puVar26 + 3)" (* "*") (cast_expression "(int *)(puVar26 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 3)" (( "(") (binary_expression "puVar26 + 3" (identifier "puVar26") (+ "+") (number_literal "3")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar18 = puVar6;" (assignment_expression "puVar18 = puVar6" (identifier "puVar18") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);" (assignment_expression "iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7)" (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 "(puVar6,uVar7)" (( "(") (identifier "puVar6") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            param_1[7] = 0;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_1[7] = 0;\n          }" ({ "{") (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar26 + 0x65) != 0) {\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar26 + 0x65) != 0)" (( "(") (binary_expression "*(int *)(puVar26 + 0x65) != 0" (pointer_expression "*(int *)(puVar26 + 0x65)" (* "*") (cast_expression "(int *)(puVar26 + 0x65)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x65)" (( "(") (binary_expression "puVar26 + 0x65" (identifier "puVar26") (+ "+") (number_literal "0x65")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar23 = (int *)param_1[8];\n            (*(code *)PTR_GOMP_atomic_start_003a92e4)();\n            puVar1 = PTR_GOMP_atomic_end_003a9438;\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*(code *)puVar1)();\n            puVar18 = puVar26;\n            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;\n            if (iVar8 == 0) goto LAB_001d9360;\n          }" ({ "{") (expression_statement "piVar23 = (int *)param_1[8];" (assignment_expression "piVar23 = (int *)param_1[8]" (identifier "piVar23") (= "=") (cast_expression "(int *)param_1[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";")) (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 "puVar1 = PTR_GOMP_atomic_end_003a9438;" (assignment_expression "puVar1 = PTR_GOMP_atomic_end_003a9438" (identifier "puVar1") (= "=") (identifier "PTR_GOMP_atomic_end_003a9438")) (; ";")) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" (identifier "uVar11") (= "=") (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar15 < uVar11)" (( "(") (binary_expression "uVar15 < uVar11" (identifier "uVar15") (< "<") (identifier "uVar11")) () ")"))) (+ "+") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")))) (; ";")) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" (identifier "puVar18") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))\n            ;" (assignment_expression "iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)\n                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" (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 "(puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],\n                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))" (( "(") (identifier "puVar26") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x1364" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x1364")) (, ",") (pointer_expression "*(undefined4 *)param_1[8]" (* "*") (cast_expression "(undefined4 *)param_1[8]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (, ",") (subscript_expression "((undefined4 *)param_1[8])[1]" (parenthesized_expression "((undefined4 *)param_1[8])" (( "(") (cast_expression "(undefined4 *)param_1[8]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)((int)puVar26 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)puVar26 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x1c)" (( "(") (binary_expression "(int)puVar26 + 0x1c" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_001d9360;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d9360;" (goto "goto") (statement_identifier "LAB_001d9360") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar46 != iVar3)" (( "(") (binary_expression "iVar46 != iVar3" (identifier "iVar46") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_5c == *(int *)puVar2) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_5c == *(int *)puVar2)" (( "(") (binary_expression "local_5c == *(int *)puVar2" (identifier "local_5c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar28 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003a9064" (identifier "puVar28") (= "=") (identifier "PTR___stack_chk_fail_003a9064")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar46 = *(int *)((int)puVar18 + 0x24);" (assignment_expression "iVar46 = *(int *)((int)puVar18 + 0x24)" (identifier "iVar46") (= "=") (pointer_expression "*(int *)((int)puVar18 + 0x24)" (* "*") (cast_expression "(int *)((int)puVar18 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x24)" (( "(") (binary_expression "(int)puVar18 + 0x24" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar28 + 0x1d04ac))();" (assignment_expression "iVar3 = (**(code **)(puVar28 + 0x1d04ac))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar28 + 0x1d04ac))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d04ac))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d04ac)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d04ac)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d04ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d04ac)" (( "(") (binary_expression "puVar28 + 0x1d04ac" (identifier "puVar28") (+ "+") (number_literal "0x1d04ac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar28 + 0x1d00a8))();" (assignment_expression "iVar4 = (**(code **)(puVar28 + 0x1d00a8))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar28 + 0x1d00a8))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d00a8))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d00a8)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d00a8)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d00a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d00a8)" (( "(") (binary_expression "puVar28 + 0x1d00a8" (identifier "puVar28") (+ "+") (number_literal "0x1d00a8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;" (assignment_expression "iVar30 = *(int *)(iVar46 + 0x1c) / iVar3" (identifier "iVar30") (= "=") (binary_expression "*(int *)(iVar46 + 0x1c) / iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" (* "*") (cast_expression "(int *)(iVar46 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x1c)" (( "(") (binary_expression "iVar46 + 0x1c" (identifier "iVar46") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;" (assignment_expression "iVar3 = *(int *)(iVar46 + 0x1c) % iVar3" (identifier "iVar3") (= "=") (binary_expression "*(int *)(iVar46 + 0x1c) % iVar3" (pointer_expression "*(int *)(iVar46 + 0x1c)" (* "*") (cast_expression "(int *)(iVar46 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x1c)" (( "(") (binary_expression "iVar46 + 0x1c" (identifier "iVar46") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar3) {\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar3)" (( "(") (binary_expression "iVar4 < iVar3" (identifier "iVar4") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar30 = iVar30 + 1;\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" (identifier "iVar30") (= "=") (binary_expression "iVar30 + 1" (identifier "iVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar30 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar30 * iVar4 + iVar3" (identifier "iVar3") (= "=") (binary_expression "iVar30 * iVar4 + iVar3" (binary_expression "iVar30 * iVar4" (identifier "iVar30") (* "*") (identifier "iVar4")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar30 = iVar30 + iVar3;" (assignment_expression "iVar30 = iVar30 + iVar3" (identifier "iVar30") (= "=") (binary_expression "iVar30 + iVar3" (identifier "iVar30") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < iVar30) {\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 < iVar30)" (( "(") (binary_expression "iVar3 < iVar30" (identifier "iVar3") (< "<") (identifier "iVar30")) () ")")) (compound_statement "{\n    uVar31 = *puVar18;\n    dVar44 = (double)puVar18[1];\n    iVar8 = *(int *)(puVar18 + 5);\n    uVar27 = *(undefined4 *)(puVar18 + 4);\n    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);\n    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);\n    iVar4 = *(int *)(puVar28 + 0x1cf48c);\n    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);\n    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);\n    uVar7 = *(undefined4 *)(puVar18 + 3);\n    uVar12 = *(undefined4 *)(puVar18 + 2);\n    do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);\n  }" ({ "{") (expression_statement "uVar31 = *puVar18;" (assignment_expression "uVar31 = *puVar18" (identifier "uVar31") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "dVar44 = (double)puVar18[1];" (assignment_expression "dVar44 = (double)puVar18[1]" (identifier "dVar44") (= "=") (cast_expression "(double)puVar18[1]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar18 + 5);" (assignment_expression "iVar8 = *(int *)(puVar18 + 5)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar18 + 5)" (* "*") (cast_expression "(int *)(puVar18 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 5)" (( "(") (binary_expression "puVar18 + 5" (identifier "puVar18") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(puVar18 + 4);" (assignment_expression "uVar27 = *(undefined4 *)(puVar18 + 4)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar24 = *(undefined4 *)((int)puVar18 + 0x14);" (assignment_expression "uVar24 = *(undefined4 *)((int)puVar18 + 0x14)" (identifier "uVar24") (= "=") (pointer_expression "*(undefined4 *)((int)puVar18 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)puVar18 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x14)" (( "(") (binary_expression "(int)puVar18 + 0x14" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);" (assignment_expression "dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" (identifier "dVar43") (= "=") (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" (* "*") (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1ab8)" (( "(") (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1ab8" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" (* "*") (cast_expression "(int *)(puVar28 + 0x1cf480)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x1cf480)" (( "(") (binary_expression "puVar28 + 0x1cf480" (identifier "puVar28") (+ "+") (number_literal "0x1cf480")) () ")")))) (+ "+") (number_literal "0x1ab8")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar28 + 0x1cf48c);" (assignment_expression "iVar4 = *(int *)(puVar28 + 0x1cf48c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar28 + 0x1cf48c)" (* "*") (cast_expression "(int *)(puVar28 + 0x1cf48c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x1cf48c)" (( "(") (binary_expression "puVar28 + 0x1cf48c" (identifier "puVar28") (+ "+") (number_literal "0x1cf48c")) () ")"))))) (; ";")) (expression_statement "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" (identifier "dVar32") (= "=") (pointer_expression "*(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" (* "*") (cast_expression "(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar28 + 0x1cf480) + 0x1400)" (( "(") (binary_expression "*(int *)(puVar28 + 0x1cf480) + 0x1400" (pointer_expression "*(int *)(puVar28 + 0x1cf480)" (* "*") (cast_expression "(int *)(puVar28 + 0x1cf480)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar28 + 0x1cf480)" (( "(") (binary_expression "puVar28 + 0x1cf480" (identifier "puVar28") (+ "+") (number_literal "0x1cf480")) () ")")))) (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)((int)puVar18 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)((int)puVar18 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)puVar18 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x1c)" (( "(") (binary_expression "(int)puVar18 + 0x1c" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(puVar18 + 3);" (assignment_expression "uVar7 = *(undefined4 *)(puVar18 + 3)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 3)" (( "(") (binary_expression "puVar18 + 3" (identifier "puVar18") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(puVar18 + 2);" (assignment_expression "uVar12 = *(undefined4 *)(puVar18 + 2)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 2)" (( "(") (binary_expression "puVar18 + 2" (identifier "puVar18") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (do_statement "do {\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    } while (iVar30 != iVar3);" (do "do") (compound_statement "{\n      if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n    }" ({ "{") (if_statement "if (*(int *)((int)puVar18 + 0x34) != 0) {\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)((int)puVar18 + 0x34) != 0)" (( "(") (binary_expression "*(int *)((int)puVar18 + 0x34) != 0" (pointer_expression "*(int *)((int)puVar18 + 0x34)" (* "*") (cast_expression "(int *)((int)puVar18 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x34)" (( "(") (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);\n        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);\n        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);" (assignment_expression "puVar13 = (undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)\n                  (**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar28 + 0x1d01fc))\n                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d01fc))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d01fc)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d01fc)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d01fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d01fc)" (( "(") (binary_expression "puVar28 + 0x1d01fc" (identifier "puVar28") (+ "+") (number_literal "0x1d01fc")) () ")"))))) () ")")) (argument_list "(uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24)" (( "(") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (pointer_expression "*(undefined4 *)(iVar46 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar46 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x18)" (( "(") (binary_expression "iVar46 + 0x18" (identifier "iVar46") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar24") () ")"))))) (; ";")) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar28 + 0x1cf7f0))\n                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf7f0))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1cf7f0)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1cf7f0)" (* "*") (cast_expression "(code **)(puVar28 + 0x1cf7f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1cf7f0)" (( "(") (binary_expression "puVar28 + 0x1cf7f0" (identifier "puVar28") (+ "+") (number_literal "0x1cf7f0")) () ")"))))) () ")")) (argument_list "(uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24)" (( "(") (identifier "uVar5") (, ",") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar24") () ")")))) (; ";")) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }\n        else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" (if "if") (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (iVar9 == 0))" (( "(") (binary_expression "(puVar13 == (undefined4 *)0x0) || (iVar9 == 0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;\n        }" ({ "{") (labeled_statement "LAB_001d97e0:\n          *(undefined4 *)((int)puVar18 + 0x34) = 0;" (statement_identifier "LAB_001d97e0") (: ":") (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" (* "*") (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x34)" (( "(") (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" (else "else") (compound_statement "{\n          pdVar14 = *(double **)((int)puVar18 + 0x2c);\n          pdVar17 = *(double **)(puVar18 + 6);\n          iVar25 = *(int *)(iVar46 + 0x18);\n          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];\n          if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }\n          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);\n          if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }\n          if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }\n        }" ({ "{") (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" (identifier "pdVar14") (= "=") (pointer_expression "*(double **)((int)puVar18 + 0x2c)" (* "*") (cast_expression "(double **)((int)puVar18 + 0x2c)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar18 + 0x2c)" (( "(") (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" (identifier "pdVar17") (= "=") (pointer_expression "*(double **)(puVar18 + 6)" (* "*") (cast_expression "(double **)(puVar18 + 6)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 6)" (( "(") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar46 + 0x18)" (* "*") (cast_expression "(int *)(iVar46 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x18)" (( "(") (binary_expression "iVar46 + 0x18" (identifier "iVar46") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];" (assignment_expression "dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1]" (identifier "dVar38") (= "=") (binary_expression "((double)iVar3 - pdVar14[1]) * pdVar17[1]" (parenthesized_expression "((double)iVar3 - pdVar14[1])" (( "(") (binary_expression "(double)iVar3 - pdVar14[1]" (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3")) (- "-") (subscript_expression "pdVar14[1]" (identifier "pdVar14") ([ "[") (number_literal "1") (] "]"))) () ")")) (* "*") (subscript_expression "pdVar17[1]" (identifier "pdVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (0 < iVar25) {\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" (if "if") (parenthesized_expression "(0 < iVar25)" (( "(") (binary_expression "0 < iVar25" (number_literal "0") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n            iVar10 = 0;\n            dVar41 = dVar38 * dVar38;\n            dVar40 = dVar44 * dVar44;\n            dVar42 = 0.0;\n            do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );\n          }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar41 = dVar38 * dVar38;" (assignment_expression "dVar41 = dVar38 * dVar38" (identifier "dVar41") (= "=") (binary_expression "dVar38 * dVar38" (identifier "dVar38") (* "*") (identifier "dVar38"))) (; ";")) (expression_statement "dVar40 = dVar44 * dVar44;" (assignment_expression "dVar40 = dVar44 * dVar44" (identifier "dVar40") (= "=") (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44"))) (; ";")) (expression_statement "dVar42 = 0.0;" (assignment_expression "dVar42 = 0.0" (identifier "dVar42") (= "=") (number_literal "0.0")) (; ";")) (do_statement "do {\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            } while( true );" (do "do") (compound_statement "{\n              dVar36 = *pdVar14;\n              dVar35 = *pdVar17;\n              dVar45 = ((double)iVar10 - dVar36) * dVar35;\n              dVar37 = dVar45 * dVar45 + dVar41;\n              if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              iVar9 = iVar9 + iVar19;\n              iVar10 = iVar10 + 1;\n              puVar13 = (undefined4 *)((int)puVar13 + iVar16);\n              pdVar17 = *(double **)(puVar18 + 6);\n              pdVar14 = *(double **)((int)puVar18 + 0x2c);\n            }" ({ "{") (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" (identifier "dVar36") (= "=") (pointer_expression "*pdVar14" (* "*") (identifier "pdVar14"))) (; ";")) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" (identifier "dVar35") (= "=") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17"))) (; ";")) (expression_statement "dVar45 = ((double)iVar10 - dVar36) * dVar35;" (assignment_expression "dVar45 = ((double)iVar10 - dVar36) * dVar35" (identifier "dVar45") (= "=") (binary_expression "((double)iVar10 - dVar36) * dVar35" (parenthesized_expression "((double)iVar10 - dVar36)" (( "(") (binary_expression "(double)iVar10 - dVar36" (cast_expression "(double)iVar10" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar10")) (- "-") (identifier "dVar36")) () ")")) (* "*") (identifier "dVar35"))) (; ";")) (expression_statement "dVar37 = dVar45 * dVar45 + dVar41;" (assignment_expression "dVar37 = dVar45 * dVar45 + dVar41" (identifier "dVar37") (= "=") (binary_expression "dVar45 * dVar45 + dVar41" (binary_expression "dVar45 * dVar45" (identifier "dVar45") (* "*") (identifier "dVar45")) (+ "+") (identifier "dVar41"))) (; ";")) (if_statement "if (dVar40 <= dVar37) {\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }\n              else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" (if "if") (parenthesized_expression "(dVar40 <= dVar37)" (( "(") (binary_expression "dVar40 <= dVar37" (identifier "dVar40") (<= "<=") (identifier "dVar37")) () ")")) (compound_statement "{\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                if (iVar16 < 1) goto LAB_001d9670;\n                piVar22 = *(int **)(iVar46 + 0x2d0);\n                iVar19 = *(int *)(iVar8 + 0x2d0);\n                piVar23 = piVar22;\n                puVar20 = puVar13;\n                do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);\n                iVar16 = iVar16 << 2;\n                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;\n                if (iVar25 <= iVar10 + 1) break;\n              }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar46 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar46 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x2c0)" (( "(") (binary_expression "iVar46 + 0x2c0" (identifier "iVar46") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (iVar16 < 1) goto LAB_001d9670;" (if "if") (parenthesized_expression "(iVar16 < 1)" (( "(") (binary_expression "iVar16 < 1" (identifier "iVar16") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_001d9670;" (goto "goto") (statement_identifier "LAB_001d9670") (; ";"))) (expression_statement "piVar22 = *(int **)(iVar46 + 0x2d0);" (assignment_expression "piVar22 = *(int **)(iVar46 + 0x2d0)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(iVar46 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar46 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar46 + 0x2d0)" (( "(") (binary_expression "iVar46 + 0x2d0" (identifier "iVar46") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2d0);" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2d0)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar8 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar8 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2d0)" (( "(") (binary_expression "iVar8 + 0x2d0" (identifier "iVar8") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar23 = piVar22;" (assignment_expression "piVar23 = piVar22" (identifier "piVar23") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" (identifier "puVar20") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                } while (piVar23 != piVar22 + iVar16 * 3);" (do "do") (compound_statement "{\n                  iVar21 = iVar19 + *piVar23 * 0xc;\n                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }\n                  piVar23 = piVar23 + 3;\n                  puVar20 = puVar20 + 1;\n                }" ({ "{") (expression_statement "iVar21 = iVar19 + *piVar23 * 0xc;" (assignment_expression "iVar21 = iVar19 + *piVar23 * 0xc" (identifier "iVar21") (= "=") (binary_expression "iVar19 + *piVar23 * 0xc" (identifier "iVar19") (+ "+") (binary_expression "*piVar23 * 0xc" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" (if "if") (parenthesized_expression "((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0))" (( "(") (binary_expression "(piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)" (parenthesized_expression "(piVar22[*piVar23 * 3 + 1] != 0)" (( "(") (binary_expression "piVar22[*piVar23 * 3 + 1] != 0" (subscript_expression "piVar22[*piVar23 * 3 + 1]" (identifier "piVar22") ([ "[") (binary_expression "*piVar23 * 3 + 1" (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar21 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar21 + 4) != 0" (pointer_expression "*(int *)(iVar21 + 4)" (* "*") (cast_expression "(int *)(iVar21 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 4)" (( "(") (binary_expression "iVar21 + 4" (identifier "iVar21") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;\n                  }" ({ "{") (expression_statement "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;" (assignment_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20" (pointer_expression "*(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + *(int *)(iVar21 + 8) * 4)" (( "(") (binary_expression "iVar9 + *(int *)(iVar21 + 8) * 4" (identifier "iVar9") (+ "+") (binary_expression "*(int *)(iVar21 + 8) * 4" (pointer_expression "*(int *)(iVar21 + 8)" (* "*") (cast_expression "(int *)(iVar21 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 8)" (( "(") (binary_expression "iVar21 + 8" (identifier "iVar21") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (} "}"))) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" (identifier "piVar23") (= "=") (binary_expression "piVar23 + 3" (identifier "piVar23") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar23 != piVar22 + iVar16 * 3)" (( "(") (binary_expression "piVar23 != piVar22 + iVar16 * 3" (identifier "piVar23") (!= "!=") (binary_expression "piVar22 + iVar16 * 3" (identifier "piVar22") (+ "+") (binary_expression "iVar16 * 3" (identifier "iVar16") (* "*") (number_literal "3")))) () ")")) (; ";")) (expression_statement "iVar16 = iVar16 << 2;" (assignment_expression "iVar16 = iVar16 << 2" (identifier "iVar16") (= "=") (binary_expression "iVar16 << 2" (identifier "iVar16") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) << 2;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) << 2" (identifier "iVar19") (= "=") (binary_expression "*(int *)(iVar8 + 0x2c0) << 2" (pointer_expression "*(int *)(iVar8 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar8 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2c0)" (( "(") (binary_expression "iVar8 + 0x2c0" (identifier "iVar8") (+ "+") (number_literal "0x2c0")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (if_statement "if (iVar25 <= iVar10 + 1) break;" (if "if") (parenthesized_expression "(iVar25 <= iVar10 + 1)" (( "(") (binary_expression "iVar25 <= iVar10 + 1" (identifier "iVar25") (<= "<=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" (else "else") (compound_statement "{\n                dVar39 = dVar38;\n                if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }\n                iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);\n                *(int *)((int)puVar18 + 0x34) = iVar25;\n                if (iVar25 == 0) break;\n                iVar16 = *(int *)(iVar46 + 0x2c0);\n                iVar25 = *(int *)(iVar46 + 0x18);\n                dVar38 = dVar39;\nLAB_001d9670:\n                iVar16 = iVar16 * 4;\n                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;\n                if (iVar25 <= iVar10 + 1) break;\n              }" ({ "{") (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" (identifier "dVar39") (= "=") (identifier "dVar38")) (; ";")) (if_statement "if (dVar42 < dVar37) {\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n                  if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }\n                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);\n                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);\n                  pdVar17 = *(double **)(puVar18 + 6);\n                  dVar45 = dVar45 * dVar38;\n                  pdVar14 = *(double **)((int)puVar18 + 0x2c);\n                  dVar35 = *pdVar17;\n                  dVar38 = dVar39 * dVar38;\n                  dVar36 = *pdVar14;\n                }" ({ "{") (if_statement "if (dVar37 < dVar42) {\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" (if "if") (parenthesized_expression "(dVar37 < dVar42)" (( "(") (binary_expression "dVar37 < dVar42" (identifier "dVar37") (< "<") (identifier "dVar42")) () ")")) (compound_statement "{\n                    (**(code **)(puVar28 + 0x1d0020))();\n                    dVar39 = dVar38;\n                  }" ({ "{") (expression_statement "(**(code **)(puVar28 + 0x1d0020))();" (call_expression "(**(code **)(puVar28 + 0x1d0020))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0020))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d0020)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d0020)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d0020)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d0020)" (( "(") (binary_expression "puVar28 + 0x1d0020" (identifier "puVar28") (+ "+") (number_literal "0x1d0020")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" (identifier "dVar39") (= "=") (identifier "dVar38")) (; ";")) (} "}"))) (expression_statement "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);" (assignment_expression "uVar33 = (**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (identifier "uVar33") (= "=") (call_expression "(**(code **)(puVar28 + 0x1cf8e4))\n                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf8e4))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1cf8e4)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1cf8e4)" (* "*") (cast_expression "(code **)(puVar28 + 0x1cf8e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1cf8e4)" (( "(") (binary_expression "puVar28 + 0x1cf8e4" (identifier "puVar28") (+ "+") (number_literal "0x1cf8e4")) () ")"))))) () ")")) (argument_list "(((SQRT(dVar37) * dVar43) / dVar44) * dVar32)" (( "(") (binary_expression "((SQRT(dVar37) * dVar43) / dVar44) * dVar32" (parenthesized_expression "((SQRT(dVar37) * dVar43) / dVar44)" (( "(") (binary_expression "(SQRT(dVar37) * dVar43) / dVar44" (parenthesized_expression "(SQRT(dVar37) * dVar43)" (( "(") (binary_expression "SQRT(dVar37) * dVar43" (call_expression "SQRT(dVar37)" (identifier "SQRT") (argument_list "(dVar37)" (( "(") (identifier "dVar37") () ")"))) (* "*") (identifier "dVar43")) () ")")) (/ "/") (identifier "dVar44")) () ")")) (* "*") (identifier "dVar32")) () ")")))) (; ";")) (expression_statement "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000);" (assignment_expression "dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (identifier "dVar38") (= "=") (cast_expression "(double)(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar28 + 0x1d02bc))\n                                             (uVar33,uVar31 ^ 0x8000000000000000)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d02bc))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d02bc)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d02bc)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d02bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d02bc)" (( "(") (binary_expression "puVar28 + 0x1d02bc" (identifier "puVar28") (+ "+") (number_literal "0x1d02bc")) () ")"))))) () ")")) (argument_list "(uVar33,uVar31 ^ 0x8000000000000000)" (( "(") (identifier "uVar33") (, ",") (binary_expression "uVar31 ^ 0x8000000000000000" (identifier "uVar31") (^ "^") (number_literal "0x8000000000000000")) () ")"))))) (; ";")) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" (identifier "pdVar17") (= "=") (pointer_expression "*(double **)(puVar18 + 6)" (* "*") (cast_expression "(double **)(puVar18 + 6)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 6)" (( "(") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "dVar45 = dVar45 * dVar38;" (assignment_expression "dVar45 = dVar45 * dVar38" (identifier "dVar45") (= "=") (binary_expression "dVar45 * dVar38" (identifier "dVar45") (* "*") (identifier "dVar38"))) (; ";")) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" (identifier "pdVar14") (= "=") (pointer_expression "*(double **)((int)puVar18 + 0x2c)" (* "*") (cast_expression "(double **)((int)puVar18 + 0x2c)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar18 + 0x2c)" (( "(") (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "dVar35 = *pdVar17;" (assignment_expression "dVar35 = *pdVar17" (identifier "dVar35") (= "=") (pointer_expression "*pdVar17" (* "*") (identifier "pdVar17"))) (; ";")) (expression_statement "dVar38 = dVar39 * dVar38;" (assignment_expression "dVar38 = dVar39 * dVar38" (identifier "dVar38") (= "=") (binary_expression "dVar39 * dVar38" (identifier "dVar39") (* "*") (identifier "dVar38"))) (; ";")) (expression_statement "dVar36 = *pdVar14;" (assignment_expression "dVar36 = *pdVar14" (identifier "dVar36") (= "=") (pointer_expression "*pdVar14" (* "*") (identifier "pdVar14"))) (; ";")) (} "}"))) (expression_statement "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);" (assignment_expression "iVar25 = (**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(puVar28 + 0x1d0088))\n                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0088))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d0088)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d0088)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d0088)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d0088)" (( "(") (binary_expression "puVar28 + 0x1d0088" (identifier "puVar28") (+ "+") (number_literal "0x1d0088")) () ")"))))) () ")")) (argument_list "(iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,\n                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24)" (( "(") (identifier "iVar46") (, ",") (identifier "uVar27") (, ",") (identifier "iVar8") (, ",") (identifier "uVar12") (, ",") (binary_expression "dVar45 / dVar35 + dVar36" (binary_expression "dVar45 / dVar35" (identifier "dVar45") (/ "/") (identifier "dVar35")) (+ "+") (identifier "dVar36")) (, ",") (binary_expression "dVar38 / pdVar17[1] + pdVar14[1]" (binary_expression "dVar38 / pdVar17[1]" (identifier "dVar38") (/ "/") (subscript_expression "pdVar17[1]" (identifier "pdVar17") ([ "[") (number_literal "1") (] "]"))) (+ "+") (subscript_expression "pdVar14[1]" (identifier "pdVar14") ([ "[") (number_literal "1") (] "]"))) (, ",") (identifier "iVar9") (, ",") (identifier "uVar24") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar18 + 0x34) = iVar25;" (assignment_expression "*(int *)((int)puVar18 + 0x34) = iVar25" (pointer_expression "*(int *)((int)puVar18 + 0x34)" (* "*") (cast_expression "(int *)((int)puVar18 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x34)" (( "(") (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (iVar25 == 0) break;" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = *(int *)(iVar46 + 0x2c0);" (assignment_expression "iVar16 = *(int *)(iVar46 + 0x2c0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar46 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar46 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x2c0)" (( "(") (binary_expression "iVar46 + 0x2c0" (identifier "iVar46") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar46 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar46 + 0x18)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar46 + 0x18)" (* "*") (cast_expression "(int *)(iVar46 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x18)" (( "(") (binary_expression "iVar46 + 0x18" (identifier "iVar46") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "dVar38 = dVar39;" (assignment_expression "dVar38 = dVar39" (identifier "dVar38") (= "=") (identifier "dVar39")) (; ";")) (labeled_statement "LAB_001d9670:\n                iVar16 = iVar16 * 4;" (statement_identifier "LAB_001d9670") (: ":") (expression_statement "iVar16 = iVar16 * 4;" (assignment_expression "iVar16 = iVar16 * 4" (identifier "iVar16") (= "=") (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4"))) (; ";"))) (expression_statement "iVar19 = *(int *)(iVar8 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(int *)(iVar8 + 0x2c0) * 4" (identifier "iVar19") (= "=") (binary_expression "*(int *)(iVar8 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar8 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar8 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2c0)" (( "(") (binary_expression "iVar8 + 0x2c0" (identifier "iVar8") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (iVar25 <= iVar10 + 1) break;" (if "if") (parenthesized_expression "(iVar25 <= iVar10 + 1)" (( "(") (binary_expression "iVar25 <= iVar10 + 1" (identifier "iVar25") (<= "<=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "iVar9 = iVar9 + iVar19;" (assignment_expression "iVar9 = iVar9 + iVar19" (identifier "iVar9") (= "=") (binary_expression "iVar9 + iVar19" (identifier "iVar9") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)((int)puVar13 + iVar16);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar13 + iVar16)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)((int)puVar13 + iVar16)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + iVar16)" (( "(") (binary_expression "(int)puVar13 + iVar16" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar16")) () ")")))) (; ";")) (expression_statement "pdVar17 = *(double **)(puVar18 + 6);" (assignment_expression "pdVar17 = *(double **)(puVar18 + 6)" (identifier "pdVar17") (= "=") (pointer_expression "*(double **)(puVar18 + 6)" (* "*") (cast_expression "(double **)(puVar18 + 6)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 6)" (( "(") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "pdVar14 = *(double **)((int)puVar18 + 0x2c);" (assignment_expression "pdVar14 = *(double **)((int)puVar18 + 0x2c)" (identifier "pdVar14") (= "=") (pointer_expression "*(double **)((int)puVar18 + 0x2c)" (* "*") (cast_expression "(double **)((int)puVar18 + 0x2c)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar18 + 0x2c)" (( "(") (binary_expression "(int)puVar18 + 0x2c" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24)" (parenthesized_expression "(**(code **)(puVar28 + 0x1d0098))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1d0098)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1d0098)" (* "*") (cast_expression "(code **)(puVar28 + 0x1d0098)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1d0098)" (( "(") (binary_expression "puVar28 + 0x1d0098" (identifier "puVar28") (+ "+") (number_literal "0x1d0098")) () ")"))))) () ")")) (argument_list "(uVar5,uVar24)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar24") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)((int)puVar18 + 0x34) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)puVar18 + 0x34) = 0;" (assignment_expression "*(undefined4 *)((int)puVar18 + 0x34) = 0" (pointer_expression "*(undefined4 *)((int)puVar18 + 0x34)" (* "*") (cast_expression "(undefined4 *)((int)puVar18 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + 0x34)" (( "(") (binary_expression "(int)puVar18 + 0x34" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar46 + 0x328) != 0) {\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar46 + 0x328) != 0)" (( "(") (binary_expression "*(int *)(iVar46 + 0x328) != 0" (pointer_expression "*(int *)(iVar46 + 0x328)" (* "*") (cast_expression "(int *)(iVar46 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x328)" (( "(") (binary_expression "iVar46 + 0x328" (identifier "iVar46") (+ "+") (number_literal "0x328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar23 = *(int **)(puVar18 + 7);\n            (**(code **)(puVar28 + 0x1cfe84))();\n            uVar11 = piVar23[1];\n            uVar15 = uVar11 + 1;\n            pcVar29 = *(code **)(puVar28 + 0x1cffd8);\n            piVar23[1] = uVar15;\n            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;\n            (*pcVar29)();\n            iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));\n            if (iVar9 == 0) goto LAB_001d97e0;\n          }" ({ "{") (expression_statement "piVar23 = *(int **)(puVar18 + 7);" (assignment_expression "piVar23 = *(int **)(puVar18 + 7)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(puVar18 + 7)" (* "*") (cast_expression "(int **)(puVar18 + 7)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 7)" (( "(") (binary_expression "puVar18 + 7" (identifier "puVar18") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar28 + 0x1cfe84))();" (call_expression "(**(code **)(puVar28 + 0x1cfe84))()" (parenthesized_expression "(**(code **)(puVar28 + 0x1cfe84))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1cfe84)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1cfe84)" (* "*") (cast_expression "(code **)(puVar28 + 0x1cfe84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1cfe84)" (( "(") (binary_expression "puVar28 + 0x1cfe84" (identifier "puVar28") (+ "+") (number_literal "0x1cfe84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = piVar23[1];" (assignment_expression "uVar11 = piVar23[1]" (identifier "uVar11") (= "=") (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = uVar11 + 1;" (assignment_expression "uVar15 = uVar11 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x1cffd8);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x1cffd8)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(puVar28 + 0x1cffd8)" (* "*") (cast_expression "(code **)(puVar28 + 0x1cffd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1cffd8)" (( "(") (binary_expression "puVar28 + 0x1cffd8" (identifier "puVar28") (+ "+") (number_literal "0x1cffd8")) () ")"))))) (; ";")) (expression_statement "piVar23[1] = uVar15;" (assignment_expression "piVar23[1] = uVar15" (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23;" (assignment_expression "*piVar23 = (uint)(uVar15 < uVar11) + *piVar23" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (binary_expression "(uint)(uVar15 < uVar11) + *piVar23" (call_expression "(uint)(uVar15 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar15 < uVar11)" (( "(") (binary_expression "uVar15 < uVar11" (identifier "uVar15") (< "<") (identifier "uVar11")) () ")"))) (+ "+") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")))) (; ";")) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));" (assignment_expression "iVar9 = (**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar28 + 0x1cf854))\n                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (parenthesized_expression "(**(code **)(puVar28 + 0x1cf854))" (( "(") (pointer_expression "**(code **)(puVar28 + 0x1cf854)" (* "*") (pointer_expression "*(code **)(puVar28 + 0x1cf854)" (* "*") (cast_expression "(code **)(puVar28 + 0x1cf854)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar28 + 0x1cf854)" (( "(") (binary_expression "puVar28 + 0x1cf854" (identifier "puVar28") (+ "+") (number_literal "0x1cf854")) () ")"))))) () ")")) (argument_list "(iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),\n                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c))" (( "(") (identifier "iVar46") (, ",") (binary_expression "iVar4 + -0x1350" (identifier "iVar4") (+ "+") (number_literal "-0x1350")) (, ",") (pointer_expression "**(undefined4 **)(puVar18 + 7)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 7)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 7)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 7)" (( "(") (binary_expression "puVar18 + 7" (identifier "puVar18") (+ "+") (number_literal "7")) () ")"))))) (, ",") (subscript_expression "(*(undefined4 **)(puVar18 + 7))[1]" (parenthesized_expression "(*(undefined4 **)(puVar18 + 7))" (( "(") (pointer_expression "*(undefined4 **)(puVar18 + 7)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 7)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 7)" (( "(") (binary_expression "puVar18 + 7" (identifier "puVar18") (+ "+") (number_literal "7")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar46 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar46 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar46 + 0x1c)" (( "(") (binary_expression "iVar46 + 0x1c" (identifier "iVar46") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_001d97e0;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d97e0;" (goto "goto") (statement_identifier "LAB_001d97e0") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar30 != iVar3)" (( "(") (binary_expression "iVar30 != iVar3" (identifier "iVar30") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x001d944c) */
/* WARNING: Removing unreachable block (ram,0x001d91e0) */
/* WARNING: Removing unreachable block (ram,0x001d91ec) */
/* WARNING: Removing unreachable block (ram,0x001d91f8) */
/* WARNING: Removing unreachable block (ram,0x001d9204) */
/* DWARF original prototype: void ColorMatrixImage._omp_fn.3(anon_struct_36_9_58c4ea65 * param_0) */

void __thiscall function_1(void *this)

{
  type_1 *var_13;
  type_1 *puVar2;
  int var_1;
  int var_3;
  type_2 uVar5;
  type_3 *puVar6;
  type_2 uVar7;
  int var_8;
  int var_9;
  int var_10;
  type_4 var_11;
  type_4 var_12;
  type_2 uVar13;
  type_2 *var_23;
  double *pdVar15;
  int var_16;
  double *pdVar17;
  type_3 *var_22;
  int var_15;
  type_2 *var_33;
  int var_17;
  int *var_34;
  int *var_32;
  type_2 uVar24;
  int var_19;
  type_3 *var_6;
  type_2 uVar27;
  type_1 *var_14;
  type_5 *pcVar29;
  int var_7;
  float fVar34;
  type_3 var_39;
  double var_38;
  type_6 uVar33;
  double var_27;
  double var_26;
  double var_31;
  double var_24;
  double var_40;
  double var_30;
  double var_29;
  double var_35;
  double var_37;
  double var_25;
  double var_28;
  int var_4;
  type_2 local_b8;
  type_2 local_b4;
  int var_18;
  type_3 local_a8;
  type_2 local_a0;
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  int var_21;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  var_21 = *(int *)PTR___stack_chk_guard_003a9230;
                    /* WARNING: Load size is inaccurate */
  var_6 = *this;
  var_1 = (*(type_5 *)PTR_omp_get_num_threads_003a990c)();
  var_3 = (*(type_5 *)PTR_omp_get_thread_num_003a9508)();
  var_14 = var_5;
  if (var_1 == 0) {
    var_2(7);
  }
  var_4 = *(int *)((int)var_6 + 0x1c) / var_1;
  var_1 = *(int *)((int)var_6 + 0x1c) % var_1;
  if (var_3 < var_1) {
    var_4 = var_4 + 1;
    var_1 = 0;
  }
  var_22 = (type_3 *)(var_4 * var_3);
  var_1 = (int)var_22 + var_1;
  var_4 = var_4 + var_1;
  if (var_1 < var_4) {
    var_7 = *(int *)((int)this + 0x18);
    var_3 = *(int *)((int)this + 4);
    var_37 = *(double *)(var_5 + 0x1a58);
    uVar5 = *(type_2 *)((int)this + 0x10);
    var_39 = (type_3)*(type_4 *)(var_5 + 0x1a50);
    puVar6 = *(type_3 **)((int)this + 0xc);
    uVar7 = *(type_2 *)((int)this + 8);
    do {
      if (*(int *)((int)this + 0x1c) != 0) {
        var_8 = (*(type_5 *)PTR_GetCacheViewVirtualPixels_003a965c)
                          (uVar5,0,var_1,*(type_2 *)(var_6 + 3),1,uVar7);
        var_22 = puVar6;
        var_9 = (*(type_5 *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (puVar6,0,var_1,*(type_2 *)(var_7 + 0x18),1,uVar7);
        if ((var_8 == 0) || (var_9 == 0)) {
LAB_001d9360:
          *(type_2 *)((int)this + 0x1c) = 0;
        }
        else {
          (*(type_5 *)PTR_GetPixelInfo_003a92b4)(var_6,&local_b8);
          var_13 = var_20;
          if (0 < *(int *)(var_6 + 3)) {
            var_19 = 0;
            do {
              (*(type_5 *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);
              local_a8 = var_6[0x49];
              local_b8 = *(type_2 *)var_6;
              local_b4 = (type_2)*var_6;
              local_a0 = *(type_2 *)(var_6 + 4);
              var_18 = *(int *)((int)var_6 + 700);
              local_70 = var_37;
              if (var_8 != 0) {
                var_10 = *(int *)(var_6 + 0x5a);
                local_90 = (double)*(float *)(var_8 + *(int *)(var_10 + 8) * 4);
                local_88 = (double)*(float *)(var_8 + *(int *)(var_10 + 0x14) * 4);
                local_80 = (double)*(float *)(var_8 + *(int *)(var_10 + 0x20) * 4);
                if (*(int *)(var_10 + 0x28) != 0) {
                  local_78 = (double)*(float *)(var_8 + *(int *)(var_10 + 0x2c) * 4);
                }
                if (*(int *)(var_10 + 0x34) != 0) {
                  var_18 = 4;
                  local_70 = (double)*(float *)(var_8 + *(int *)(var_10 + 0x38) * 4);
                }
                if (*(int *)(var_10 + 0x40) != 0) {
                  local_68 = (double)*(float *)(var_8 + *(int *)(var_10 + 0x44) * 4);
                }
              }
              var_11 = *(type_4 *)(var_3 + 8);
              var_12 = 6;
              if (var_11 < 7) {
                var_12 = var_11;
              }
              if (var_12 != 0) {
                var_11 = 0;
                do {
                  if (var_11 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */
                    /* WARNING: Treating indirect jump as call */
                    (*(type_5 *)(&_gp + *(int *)(var_13 + var_11 * 4 + -0x1120)))
                              (*(type_6 *)(var_14 + 0x1a58));
                    return;
                  }
                  var_11 = var_11 + 1;
                } while (var_11 != var_12);
              }
              var_10 = *(int *)(var_7 + 0x2d0);
              var_15 = *(int *)(var_10 + 0x14);
              var_16 = *(int *)(var_10 + 0x20);
              var_17 = *(int *)(var_10 + 0x28);
              *(float *)(var_9 + *(int *)(var_10 + 8) * 4) = (float)local_90;
              *(float *)(var_9 + var_15 * 4) = (float)local_88;
              *(float *)(var_9 + var_16 * 4) = (float)local_80;
              if (var_17 != 0) {
                *(float *)(var_9 + *(int *)(var_10 + 0x2c) * 4) = (float)local_78;
              }
              if (*(int *)(var_10 + 0x34) != 0) {
                fVar34 = (float)var_39;
                if (var_18 != 0) {
                  fVar34 = (float)local_70;
                }
                *(float *)(var_9 + *(int *)(var_10 + 0x38) * 4) = fVar34;
              }
              var_19 = var_19 + 1;
              var_8 = var_8 + *(int *)(var_6 + 0x58) * 4;
              var_9 = var_9 + *(int *)(var_7 + 0x2c0) * 4;
            } while (var_19 < *(int *)(var_6 + 3));
          }
          var_22 = puVar6;
          var_8 = (*(type_5 *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);
          if (var_8 == 0) {
            *(type_2 *)((int)this + 0x1c) = 0;
          }
          if (*(int *)(var_6 + 0x65) != 0) {
            var_32 = *(int **)((int)this + 0x20);
            (*(type_5 *)PTR_GOMP_atomic_start_003a92e4)();
            var_13 = PTR_GOMP_atomic_end_003a9438;
            var_12 = var_32[1];
            var_11 = var_12 + 1;
            var_32[1] = var_11;
            *var_32 = (type_4)(var_11 < var_12) + *var_32;
            (*(type_5 *)var_13)();
            var_22 = var_6;
            var_8 = (*(type_5 *)PTR_SetImageProgress_003a8cb4)
                              (var_6,var_20 + -0x1364,
                               **(type_2 **)((int)this + 0x20),
                               (*(type_2 **)((int)this + 0x20))[1],0,
                               *(type_2 *)((int)var_6 + 0x1c));
            if (var_8 == 0) goto LAB_001d9360;
          }
        }
      }
      var_1 = var_1 + 1;
    } while (var_4 != var_1);
  }
  if (var_21 == *(int *)puVar2) {
    return;
  }
  var_14 = PTR___stack_chk_fail_003a9064;
  (*(type_5 *)PTR___stack_chk_fail_003a9064)();
  var_4 = *(int *)((int)var_22 + 0x24);
  var_1 = (**(type_5 **)(var_14 + 0x1d04ac))();
  var_3 = (**(type_5 **)(var_14 + 0x1d00a8))();
  if (var_1 == 0) {
    var_2(7);
  }
  var_7 = *(int *)(var_4 + 0x1c) / var_1;
  var_1 = *(int *)(var_4 + 0x1c) % var_1;
  if (var_3 < var_1) {
    var_7 = var_7 + 1;
    var_1 = 0;
  }
  var_1 = var_7 * var_3 + var_1;
  var_7 = var_7 + var_1;
  if (var_1 < var_7) {
    var_39 = *var_22;
    var_25 = (double)var_22[1];
    var_8 = *(int *)(var_22 + 5);
    uVar27 = *(type_2 *)(var_22 + 4);
    uVar24 = *(type_2 *)((int)var_22 + 0x14);
    var_37 = *(double *)(*(int *)(var_14 + 0x1cf480) + 0x1ab8);
    var_3 = *(int *)(var_14 + 0x1cf48c);
    var_38 = *(double *)(*(int *)(var_14 + 0x1cf480) + 0x1400);
    uVar5 = *(type_2 *)((int)var_22 + 0x1c);
    uVar7 = *(type_2 *)(var_22 + 3);
    uVar13 = *(type_2 *)(var_22 + 2);
    do {
      if (*(int *)((int)var_22 + 0x34) != 0) {
        var_23 = (type_2 *)
                  (**(type_5 **)(var_14 + 0x1d01fc))
                            (uVar7,0,var_1,*(type_2 *)(var_4 + 0x18),1,uVar24);
        var_9 = (**(type_5 **)(var_14 + 0x1cf7f0))
                          (uVar5,0,var_1,*(type_2 *)(var_8 + 0x18),1,uVar24);
        if ((var_23 == (type_2 *)0x0) || (var_9 == 0)) {
LAB_001d97e0:
          *(type_2 *)((int)var_22 + 0x34) = 0;
        }
        else {
          pdVar15 = *(double **)((int)var_22 + 0x2c);
          pdVar17 = *(double **)(var_22 + 6);
          var_19 = *(int *)(var_4 + 0x18);
          var_24 = ((double)var_1 - pdVar15[1]) * pdVar17[1];
          if (0 < var_19) {
            var_10 = 0;
            var_29 = var_24 * var_24;
            var_30 = var_25 * var_25;
            var_35 = 0.0;
            do {
              var_26 = *pdVar15;
              var_27 = *pdVar17;
              var_28 = ((double)var_10 - var_26) * var_27;
              var_31 = var_28 * var_28 + var_29;
              if (var_30 <= var_31) {
                var_16 = *(int *)(var_4 + 0x2c0);
                if (var_16 < 1) goto LAB_001d9670;
                var_34 = *(int **)(var_4 + 0x2d0);
                var_15 = *(int *)(var_8 + 0x2d0);
                var_32 = var_34;
                var_33 = var_23;
                do {
                  var_17 = var_15 + *var_32 * 0xc;
                  if ((var_34[*var_32 * 3 + 1] != 0) && (*(int *)(var_17 + 4) != 0)) {
                    *(type_2 *)(var_9 + *(int *)(var_17 + 8) * 4) = *var_33;
                  }
                  var_32 = var_32 + 3;
                  var_33 = var_33 + 1;
                } while (var_32 != var_34 + var_16 * 3);
                var_16 = var_16 << 2;
                var_15 = *(int *)(var_8 + 0x2c0) << 2;
                if (var_19 <= var_10 + 1) break;
              }
              else {
                var_40 = var_24;
                if (var_35 < var_31) {
                  if (var_31 < var_35) {
                    (**(type_5 **)(var_14 + 0x1d0020))();
                    var_40 = var_24;
                  }
                  uVar33 = (**(type_5 **)(var_14 + 0x1cf8e4))
                                     (((var_36(var_31) * var_37) / var_25) * var_38);
                  var_24 = (double)(**(type_5 **)(var_14 + 0x1d02bc))
                                             (uVar33,var_39 ^ 0x8000000000000000);
                  pdVar17 = *(double **)(var_22 + 6);
                  var_28 = var_28 * var_24;
                  pdVar15 = *(double **)((int)var_22 + 0x2c);
                  var_27 = *pdVar17;
                  var_24 = var_40 * var_24;
                  var_26 = *pdVar15;
                }
                var_19 = (**(type_5 **)(var_14 + 0x1d0088))
                                   (var_4,uVar27,var_8,uVar13,var_28 / var_27 + var_26,
                                    var_24 / pdVar17[1] + pdVar15[1],var_9,uVar24);
                *(int *)((int)var_22 + 0x34) = var_19;
                if (var_19 == 0) break;
                var_16 = *(int *)(var_4 + 0x2c0);
                var_19 = *(int *)(var_4 + 0x18);
                var_24 = var_40;
LAB_001d9670:
                var_16 = var_16 * 4;
                var_15 = *(int *)(var_8 + 0x2c0) * 4;
                if (var_19 <= var_10 + 1) break;
              }
              var_9 = var_9 + var_15;
              var_10 = var_10 + 1;
              var_23 = (type_2 *)((int)var_23 + var_16);
              pdVar17 = *(double **)(var_22 + 6);
              pdVar15 = *(double **)((int)var_22 + 0x2c);
            } while( true );
          }
          var_9 = (**(type_5 **)(var_14 + 0x1d0098))(uVar5,uVar24);
          if (var_9 == 0) {
            *(type_2 *)((int)var_22 + 0x34) = 0;
          }
          if (*(int *)(var_4 + 0x328) != 0) {
            var_32 = *(int **)(var_22 + 7);
            (**(type_5 **)(var_14 + 0x1cfe84))();
            var_12 = var_32[1];
            var_11 = var_12 + 1;
            pcVar29 = *(type_5 **)(var_14 + 0x1cffd8);
            var_32[1] = var_11;
            *var_32 = (type_4)(var_11 < var_12) + *var_32;
            (*pcVar29)();
            var_9 = (**(type_5 **)(var_14 + 0x1cf854))
                              (var_4,var_3 + -0x1350,**(type_2 **)(var_22 + 7),
                               (*(type_2 **)(var_22 + 7))[1],0,*(type_2 *)(var_4 + 0x1c));
            if (var_9 == 0) goto LAB_001d97e0;
          }
        }
      }
      var_1 = var_1 + 1;
    } while (var_7 != var_1);
  }
  return;
}


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

/* WARNING: Removing unreachable block (ram,0x001d944c) */
/* WARNING: Removing unreachable block (ram,0x001d91e0) */
/* WARNING: Removing unreachable block (ram,0x001d91ec) */
/* WARNING: Removing unreachable block (ram,0x001d91f8) */
/* WARNING: Removing unreachable block (ram,0x001d9204) */

void MASKED(undefined4 *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  ulonglong *puVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  double *pdVar14;
  uint uVar15;
  int iVar16;
  double *pdVar17;
  ulonglong *puVar18;
  int iVar19;
  undefined4 *puVar20;
  int iVar21;
  int *piVar22;
  int *piVar23;
  undefined4 uVar24;
  int iVar25;
  ulonglong *puVar26;
  undefined4 uVar27;
  undefined *puVar28;
  code *pcVar29;
  int iVar30;
  float fVar34;
  ulonglong uVar31;
  double dVar32;
  undefined8 uVar33;
  double dVar35;
  double dVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  double dVar45;
  int iVar46;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0;
  ulonglong local_a8;
  undefined4 local_a0;
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  int local_5c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar26 = (ulonglong *)*param_1;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  puVar28 = PTR_LAB_003a88e0;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar46 = *(int *)((int)puVar26 + 0x1c) / iVar3;
  iVar3 = *(int *)((int)puVar26 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar46 = iVar46 + 1;
    iVar3 = 0;
  }
  puVar18 = (ulonglong *)(iVar46 * iVar4);
  iVar3 = (int)puVar18 + iVar3;
  iVar46 = iVar46 + iVar3;
  if (iVar3 < iVar46) {
    iVar30 = param_1[6];
    iVar4 = param_1[1];
    dVar43 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
    uVar5 = param_1[4];
    uVar31 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
    puVar6 = (ulonglong *)param_1[3];
    uVar7 = param_1[2];
    do {
      if (param_1[7] != 0) {
        iVar8 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)
                          (uVar5,0,iVar3,*(undefined4 *)(puVar26 + 3),1,uVar7);
        puVar18 = puVar6;
        iVar9 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (puVar6,0,iVar3,*(undefined4 *)(iVar30 + 0x18),1,uVar7);
        if ((iVar8 == 0) || (iVar9 == 0)) {
LAB_001d9360:
          param_1[7] = 0;
        }
        else {
          (*(code *)PTR_GetPixelInfo_003a92b4)(puVar26,&local_b8);
          puVar1 = PTR_s_courses_003a88ec;
          if (0 < *(int *)(puVar26 + 3)) {
            iVar25 = 0;
            do {
              (*(code *)PTR_ResetMagickMemory_003a8ff4)(&local_b8,0,0x58);
              local_a8 = puVar26[0x49];
              local_b8 = *(undefined4 *)puVar26;
              local_b4 = (undefined4)*puVar26;
              local_a0 = *(undefined4 *)(puVar26 + 4);
              local_b0 = *(int *)((int)puVar26 + 700);
              local_70 = dVar43;
              if (iVar8 != 0) {
                iVar10 = *(int *)(puVar26 + 0x5a);
                local_90 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 8) * 4);
                local_88 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x14) * 4);
                local_80 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x20) * 4);
                if (*(int *)(iVar10 + 0x28) != 0) {
                  local_78 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x2c) * 4);
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  local_b0 = 4;
                  local_70 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x38) * 4);
                }
                if (*(int *)(iVar10 + 0x40) != 0) {
                  local_68 = (double)*(float *)(iVar8 + *(int *)(iVar10 + 0x44) * 4);
                }
              }
              uVar11 = 6;
              if (*(uint *)(iVar4 + 8) < 7) {
                uVar11 = *(uint *)(iVar4 + 8);
              }
              if (uVar11 != 0) {
                uVar15 = 0;
                do {
                  if (uVar15 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001d91a8 */
                    /* WARNING: Treating indirect jump as call */
                    (*(code *)(&_gp_1 + *(int *)(puVar1 + uVar15 * 4 + -0x1120)))
                              (*(undefined8 *)(puVar28 + 0x1a58));
                    return;
                  }
                  uVar15 = uVar15 + 1;
                } while (uVar15 != uVar11);
              }
              iVar10 = *(int *)(iVar30 + 0x2d0);
              iVar19 = *(int *)(iVar10 + 0x14);
              iVar16 = *(int *)(iVar10 + 0x20);
              iVar21 = *(int *)(iVar10 + 0x28);
              *(float *)(iVar9 + *(int *)(iVar10 + 8) * 4) = (float)local_90;
              *(float *)(iVar9 + iVar19 * 4) = (float)local_88;
              *(float *)(iVar9 + iVar16 * 4) = (float)local_80;
              if (iVar21 != 0) {
                *(float *)(iVar9 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_78;
              }
              if (*(int *)(iVar10 + 0x34) != 0) {
                fVar34 = (float)uVar31;
                if (local_b0 != 0) {
                  fVar34 = (float)local_70;
                }
                *(float *)(iVar9 + *(int *)(iVar10 + 0x38) * 4) = fVar34;
              }
              iVar25 = iVar25 + 1;
              iVar8 = iVar8 + *(int *)(puVar26 + 0x58) * 4;
              iVar9 = iVar9 + *(int *)(iVar30 + 0x2c0) * 4;
            } while (iVar25 < *(int *)(puVar26 + 3));
          }
          puVar18 = puVar6;
          iVar8 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(puVar6,uVar7);
          if (iVar8 == 0) {
            param_1[7] = 0;
          }
          if (*(int *)(puVar26 + 0x65) != 0) {
            piVar23 = (int *)param_1[8];
            (*(code *)PTR_GOMP_atomic_start_003a92e4)();
            puVar1 = PTR_GOMP_atomic_end_003a9438;
            uVar11 = piVar23[1];
            uVar15 = uVar11 + 1;
            piVar23[1] = uVar15;
            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;
            (*(code *)puVar1)();
            puVar18 = puVar26;
            iVar8 = (*(code *)PTR_SetImageProgress_003a8cb4)
                              (puVar26,PTR_s_courses_003a88ec + -0x1364,*(undefined4 *)param_1[8],
                               ((undefined4 *)param_1[8])[1],0,*(undefined4 *)((int)puVar26 + 0x1c))
            ;
            if (iVar8 == 0) goto LAB_001d9360;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar46 != iVar3);
  }
  if (local_5c == *(int *)puVar2) {
    return;
  }
  puVar28 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  iVar46 = *(int *)((int)puVar18 + 0x24);
  iVar3 = (**(code **)(puVar28 + 0x1d04ac))();
  iVar4 = (**(code **)(puVar28 + 0x1d00a8))();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar30 = *(int *)(iVar46 + 0x1c) / iVar3;
  iVar3 = *(int *)(iVar46 + 0x1c) % iVar3;
  if (iVar4 < iVar3) {
    iVar30 = iVar30 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar30 * iVar4 + iVar3;
  iVar30 = iVar30 + iVar3;
  if (iVar3 < iVar30) {
    uVar31 = *puVar18;
    dVar44 = (double)puVar18[1];
    iVar8 = *(int *)(puVar18 + 5);
    uVar27 = *(undefined4 *)(puVar18 + 4);
    uVar24 = *(undefined4 *)((int)puVar18 + 0x14);
    dVar43 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1ab8);
    iVar4 = *(int *)(puVar28 + 0x1cf48c);
    dVar32 = *(double *)(*(int *)(puVar28 + 0x1cf480) + 0x1400);
    uVar5 = *(undefined4 *)((int)puVar18 + 0x1c);
    uVar7 = *(undefined4 *)(puVar18 + 3);
    uVar12 = *(undefined4 *)(puVar18 + 2);
    do {
      if (*(int *)((int)puVar18 + 0x34) != 0) {
        puVar13 = (undefined4 *)
                  (**(code **)(puVar28 + 0x1d01fc))
                            (uVar7,0,iVar3,*(undefined4 *)(iVar46 + 0x18),1,uVar24);
        iVar9 = (**(code **)(puVar28 + 0x1cf7f0))
                          (uVar5,0,iVar3,*(undefined4 *)(iVar8 + 0x18),1,uVar24);
        if ((puVar13 == (undefined4 *)0x0) || (iVar9 == 0)) {
LAB_001d97e0:
          *(undefined4 *)((int)puVar18 + 0x34) = 0;
        }
        else {
          pdVar14 = *(double **)((int)puVar18 + 0x2c);
          pdVar17 = *(double **)(puVar18 + 6);
          iVar25 = *(int *)(iVar46 + 0x18);
          dVar38 = ((double)iVar3 - pdVar14[1]) * pdVar17[1];
          if (0 < iVar25) {
            iVar10 = 0;
            dVar41 = dVar38 * dVar38;
            dVar40 = dVar44 * dVar44;
            dVar42 = 0.0;
            do {
              dVar36 = *pdVar14;
              dVar35 = *pdVar17;
              dVar45 = ((double)iVar10 - dVar36) * dVar35;
              dVar37 = dVar45 * dVar45 + dVar41;
              if (dVar40 <= dVar37) {
                iVar16 = *(int *)(iVar46 + 0x2c0);
                if (iVar16 < 1) goto LAB_001d9670;
                piVar22 = *(int **)(iVar46 + 0x2d0);
                iVar19 = *(int *)(iVar8 + 0x2d0);
                piVar23 = piVar22;
                puVar20 = puVar13;
                do {
                  iVar21 = iVar19 + *piVar23 * 0xc;
                  if ((piVar22[*piVar23 * 3 + 1] != 0) && (*(int *)(iVar21 + 4) != 0)) {
                    *(undefined4 *)(iVar9 + *(int *)(iVar21 + 8) * 4) = *puVar20;
                  }
                  piVar23 = piVar23 + 3;
                  puVar20 = puVar20 + 1;
                } while (piVar23 != piVar22 + iVar16 * 3);
                iVar16 = iVar16 << 2;
                iVar19 = *(int *)(iVar8 + 0x2c0) << 2;
                if (iVar25 <= iVar10 + 1) break;
              }
              else {
                dVar39 = dVar38;
                if (dVar42 < dVar37) {
                  if (dVar37 < dVar42) {
                    (**(code **)(puVar28 + 0x1d0020))();
                    dVar39 = dVar38;
                  }
                  uVar33 = (**(code **)(puVar28 + 0x1cf8e4))
                                     (((SQRT(dVar37) * dVar43) / dVar44) * dVar32);
                  dVar38 = (double)(**(code **)(puVar28 + 0x1d02bc))
                                             (uVar33,uVar31 ^ 0x8000000000000000);
                  pdVar17 = *(double **)(puVar18 + 6);
                  dVar45 = dVar45 * dVar38;
                  pdVar14 = *(double **)((int)puVar18 + 0x2c);
                  dVar35 = *pdVar17;
                  dVar38 = dVar39 * dVar38;
                  dVar36 = *pdVar14;
                }
                iVar25 = (**(code **)(puVar28 + 0x1d0088))
                                   (iVar46,uVar27,iVar8,uVar12,dVar45 / dVar35 + dVar36,
                                    dVar38 / pdVar17[1] + pdVar14[1],iVar9,uVar24);
                *(int *)((int)puVar18 + 0x34) = iVar25;
                if (iVar25 == 0) break;
                iVar16 = *(int *)(iVar46 + 0x2c0);
                iVar25 = *(int *)(iVar46 + 0x18);
                dVar38 = dVar39;
LAB_001d9670:
                iVar16 = iVar16 * 4;
                iVar19 = *(int *)(iVar8 + 0x2c0) * 4;
                if (iVar25 <= iVar10 + 1) break;
              }
              iVar9 = iVar9 + iVar19;
              iVar10 = iVar10 + 1;
              puVar13 = (undefined4 *)((int)puVar13 + iVar16);
              pdVar17 = *(double **)(puVar18 + 6);
              pdVar14 = *(double **)((int)puVar18 + 0x2c);
            } while( true );
          }
          iVar9 = (**(code **)(puVar28 + 0x1d0098))(uVar5,uVar24);
          if (iVar9 == 0) {
            *(undefined4 *)((int)puVar18 + 0x34) = 0;
          }
          if (*(int *)(iVar46 + 0x328) != 0) {
            piVar23 = *(int **)(puVar18 + 7);
            (**(code **)(puVar28 + 0x1cfe84))();
            uVar11 = piVar23[1];
            uVar15 = uVar11 + 1;
            pcVar29 = *(code **)(puVar28 + 0x1cffd8);
            piVar23[1] = uVar15;
            *piVar23 = (uint)(uVar15 < uVar11) + *piVar23;
            (*pcVar29)();
            iVar9 = (**(code **)(puVar28 + 0x1cf854))
                              (iVar46,iVar4 + -0x1350,**(undefined4 **)(puVar18 + 7),
                               (*(undefined4 **)(puVar18 + 7))[1],0,*(undefined4 *)(iVar46 + 0x1c));
            if (iVar9 == 0) goto LAB_001d97e0;
          }
        }
      }
      iVar3 = iVar3 + 1;
    } while (iVar30 != iVar3);
  }
  return;
}

