
/* DWARF original prototype: void sRGBTransformImage._omp_fn.15(anon_struct_16_4_3da89457 * param_0)
    */

void __thiscall sRGBTransformImage__omp_fn_15(void *this)

{
  int iVar1;
  int iVar2;
  float *pfVar3;
  float *pfVar4;
  float *pfVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  float fVar13;
  float fVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  int iVar18;
  
                    /* WARNING: Load size is inaccurate */
  iVar12 = *this;
  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar1 == 0) {
    trap(7);
  }
  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;
  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;
  if (iVar2 < iVar1) {
    iVar18 = iVar18 + 1;
    iVar1 = 0;
  }
  iVar1 = iVar18 * iVar2 + iVar1;
  iVar18 = iVar18 + iVar1;
  if (iVar1 < iVar18) {
    uVar11 = *(undefined4 *)((int)this + 8);
    uVar10 = *(undefined4 *)((int)this + 4);
    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);
    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);
    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);
    do {
      if (*(int *)((int)this + 0xc) != 0) {
        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);
        if (iVar2 != 0) {
          iVar8 = *(int *)(iVar12 + 0x18);
          iVar7 = 0;
          if (0 < iVar8) {
            iVar9 = *(int *)(iVar12 + 0x2d0);
            iVar6 = *(int *)(iVar12 + 0x2c0);
            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);
            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);
            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);
            do {
              fVar14 = *pfVar5;
              iVar7 = iVar7 + 1;
              pfVar5 = pfVar5 + iVar6;
              fVar13 = *pfVar3;
              pfVar3 = pfVar3 + iVar6;
              *pfVar4 = (float)((double)fVar13 * dVar15 +
                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);
              pfVar4 = pfVar4 + iVar6;
            } while (iVar7 != iVar8);
          }
          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);
          if (iVar2 != 0) goto LAB_0006667c;
        }
        *(undefined4 *)((int)this + 0xc) = 0;
      }
LAB_0006667c:
      iVar1 = iVar1 + 1;
    } while (iVar18 != iVar1);
  }
  return;
}



void FUN_000664f4(int *param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  float *pfVar4;
  float *pfVar5;
  float *pfVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  float fVar13;
  float fVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  int iVar18;
  
  iVar12 = *param_1;
  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar1 == 0) {
    trap(7);
  }
  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;
  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;
  if (iVar2 < iVar1) {
    iVar18 = iVar18 + 1;
    iVar1 = 0;
  }
  iVar1 = iVar18 * iVar2 + iVar1;
  iVar18 = iVar18 + iVar1;
  if (iVar1 < iVar18) {
    iVar11 = param_1[2];
    iVar2 = param_1[1];
    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);
    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);
    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);
    do {
      if (param_1[3] != 0) {
        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);
        if (iVar3 != 0) {
          iVar9 = *(int *)(iVar12 + 0x18);
          iVar8 = 0;
          if (0 < iVar9) {
            iVar10 = *(int *)(iVar12 + 0x2d0);
            iVar7 = *(int *)(iVar12 + 0x2c0);
            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);
            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);
            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);
            do {
              fVar14 = *pfVar6;
              iVar8 = iVar8 + 1;
              pfVar6 = pfVar6 + iVar7;
              fVar13 = *pfVar4;
              pfVar4 = pfVar4 + iVar7;
              *pfVar5 = (float)((double)fVar13 * dVar15 +
                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);
              pfVar5 = pfVar5 + iVar7;
            } while (iVar8 != iVar9);
          }
          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);
          if (iVar3 != 0) goto LAB_0006667c;
        }
        param_1[3] = 0;
      }
LAB_0006667c:
      iVar1 = iVar1 + 1;
    } while (iVar18 != iVar1);
  }
  return;
}


lui gp,0x35
addiu gp,gp,-0x5c44
addu gp,gp,t9
addiu sp,sp,-0x58
lw t9,-0x6fa4(gp)
sdc1 f24,0x50(sp)
sw gp,0x18(sp)
sdc1 f22,0x48(sp)
sw ra,0x3c(sp)
sdc1 f20,0x40(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
or s5,a0,zero
sw s4,0x30(sp)
sw s0,0x20(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
jalr t9
_lw s6,0x0(a0)
lw gp,0x18(sp)
lw t9,-0x73a8(gp)
jalr t9
_or s4,v0,zero
lw s0,0x1c(s6)
lw gp,0x18(sp)
teq s4,zero
div s0,s4
mfhi s4
slt v1,v0,s4
beq v1,zero,0x0006657c
_mflo s0
addiu s0,s0,0x1
or s4,zero,zero
mul v1,s0,v0
addu s4,v1,s4
addu s0,s0,s4
slt v0,s4,s0
beq v0,zero,0x00066688
_lw v0,-0x7fc8(gp)
li s3,0x1
lw s2,0x8(s5)
lw s1,0x4(s5)
ldc1 f24,-0x3ed0(v0)
lw v0,-0x7fc8(gp)
ldc1 f22,-0x3ec8(v0)
lw v0,-0x7fc8(gp)
ldc1 f20,-0x3ec0(v0)
lw v0,0xc(s5)
beq v0,zero,0x0006667c
_or a1,zero,zero
lw a3,0x18(s6)
lw t9,-0x7264(gp)
or a2,s4,zero
sw s1,0x14(sp)
or a0,s2,zero
jalr t9
_sw s3,0x10(sp)
beq v0,zero,0x00066678
_lw gp,0x18(sp)
lw a3,0x18(s6)
blez a3,0x00066660
_or a2,zero,zero
lw t0,0x2d0(s6)
lw a1,0x2c0(s6)
lw v1,0x8(t0)
sll a1,a1,0x2
lw a0,0x14(t0)
lw t0,0x20(t0)
sll v1,v1,0x2
sll a0,a0,0x2
sll t0,t0,0x2
addu v1,v0,v1
addu a0,v0,a0
addu v0,v0,t0
lwc1 f4,0x0(a0)
addiu a2,a2,0x1
addu a0,a0,a1
lwc1 f2,0x0(v1)
lwc1 f0,0x0(v0)
addu v0,v0,a1
cvt.d.S f4,f4
cvt.d.S f2,f2
cvt.d.S f0,f0
mul.D f4,f4,f22
madd.D f2,f4,f2,f24
madd.D f0,f2,f0,f20
cvt.s.D f0,f0
swc1 f0,0x0(v1)
bne a2,a3,0x00066620
_addu v1,v1,a1
lw t9,-0x73b8(gp)
or a1,s1,zero
jalr t9
_or a0,s2,zero
bne v0,zero,0x0006667c
_lw gp,0x18(sp)
sw zero,0xc(s5)
addiu s4,s4,0x1
bne s0,s4,0x000665b4
_nop
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
ldc1 f24,0x50(sp)
ldc1 f22,0x48(sp)
ldc1 f20,0x40(sp)
jr ra
_addiu sp,sp,0x58
(translation_unit "void FUN_000664f4(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000664f4(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000664f4(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "float *pfVar4;" primitive_type (pointer_declarator "*pfVar4" * identifier) ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "float *pfVar6;" primitive_type (pointer_declarator "*pfVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "float fVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 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 "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) / iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;" (assignment_expression "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) % iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" if (parenthesized_expression "(iVar2 < iVar1)" ( (binary_expression "iVar2 < iVar1" identifier < identifier) )) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) })) (expression_statement "iVar1 = iVar18 * iVar2 + iVar1;" (assignment_expression "iVar1 = iVar18 * iVar2 + iVar1" identifier = (binary_expression "iVar18 * iVar2 + iVar1" (binary_expression "iVar18 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar18 + iVar1;" (assignment_expression "iVar18 = iVar18 + iVar1" identifier = (binary_expression "iVar18 + iVar1" identifier + identifier)) ;) (if_statement "if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" if (parenthesized_expression "(iVar1 < iVar18)" ( (binary_expression "iVar1 < iVar18" identifier < identifier) )) (compound_statement "{\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" { (expression_statement "iVar11 = param_1[2];" (assignment_expression "iVar11 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[1];" (assignment_expression "iVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);" (assignment_expression "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);" (assignment_expression "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8" identifier + number_literal) ))))) ;) (expression_statement "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);" (assignment_expression "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);" do (compound_statement "{\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    }" { (if_statement "if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" (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 "(iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" { (expression_statement "iVar9 = *(int *)(iVar12 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0x18)" identifier = (pointer_expression "*(int *)(iVar12 + 0x18)" * (cast_expression "(int *)(iVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" { (expression_statement "iVar10 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2d0)" * (cast_expression "(int *)(iVar12 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar12 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(iVar12 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar3 + *(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 "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "iVar3 + *(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 "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "iVar3 + *(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)) )))) ;) (do_statement "do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);" do (compound_statement "{\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            }" { (expression_statement "fVar14 = *pfVar6;" (assignment_expression "fVar14 = *pfVar6" identifier = (pointer_expression "*pfVar6" * identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pfVar6 = pfVar6 + iVar7;" (assignment_expression "pfVar6 = pfVar6 + iVar7" identifier = (binary_expression "pfVar6 + iVar7" identifier + identifier)) ;) (expression_statement "fVar13 = *pfVar4;" (assignment_expression "fVar13 = *pfVar4" identifier = (pointer_expression "*pfVar4" * identifier)) ;) (expression_statement "pfVar4 = pfVar4 + iVar7;" (assignment_expression "pfVar4 = pfVar4 + iVar7" identifier = (binary_expression "pfVar4 + iVar7" identifier + identifier)) ;) (expression_statement "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);" (assignment_expression "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" (pointer_expression "*pfVar5" * identifier) = (cast_expression "(float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" ( (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16" (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17" (binary_expression "(double)fVar13 * dVar15" (cast_expression "(double)fVar13" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) + (binary_expression "(double)*pfVar5 * dVar17" (cast_expression "(double)*pfVar5" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar5" * identifier)) * identifier)) + (binary_expression "(double)fVar14 * dVar16" (cast_expression "(double)fVar14" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" identifier = (binary_expression "pfVar5 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar8 != iVar9)" ( (binary_expression "iVar8 != iVar9" identifier != identifier) )) ;) })) (expression_statement "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" (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 "(iVar11,iVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0006667c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006667c;" goto statement_identifier ;)) })) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0006667c:\n      iVar1 = iVar1 + 1;" statement_identifier : (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar18 != iVar1)" ( (binary_expression "iVar18 != iVar1" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void sRGBTransformImage._omp_fn.15(anon_struct_16_4_3da89457 * param_0)\n    */\n\nvoid __thiscall sRGBTransformImage__omp_fn_15(void *this)\n\n{\n  int iVar1;\n  int iVar2;\n  float *pfVar3;\n  float *pfVar4;\n  float *pfVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n                    /* WARNING: Load size is inaccurate */\n  iVar12 = *this;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    uVar11 = *(undefined4 *)((int)this + 8);\n    uVar10 = *(undefined4 *)((int)this + 4);\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall sRGBTransformImage__omp_fn_15(void *this)\n\n{\n  int iVar1;\n  int iVar2;\n  float *pfVar3;\n  float *pfVar4;\n  float *pfVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n                    /* WARNING: Load size is inaccurate */\n  iVar12 = *this;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    uVar11 = *(undefined4 *)((int)this + 8);\n    uVar10 = *(undefined4 *)((int)this + 4);\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "sRGBTransformImage__omp_fn_15(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  float *pfVar3;\n  float *pfVar4;\n  float *pfVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n                    /* WARNING: Load size is inaccurate */\n  iVar12 = *this;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    uVar11 = *(undefined4 *)((int)this + 8);\n    uVar10 = *(undefined4 *)((int)this + 4);\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "float *pfVar3;" primitive_type (pointer_declarator "*pfVar3" * identifier) ;) (declaration "float *pfVar4;" primitive_type (pointer_declarator "*pfVar4" * identifier) ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "float fVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) comment (expression_statement "iVar12 = *this;" (assignment_expression "iVar12 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 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 "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) / iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;" (assignment_expression "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) % iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" if (parenthesized_expression "(iVar2 < iVar1)" ( (binary_expression "iVar2 < iVar1" identifier < identifier) )) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) })) (expression_statement "iVar1 = iVar18 * iVar2 + iVar1;" (assignment_expression "iVar1 = iVar18 * iVar2 + iVar1" identifier = (binary_expression "iVar18 * iVar2 + iVar1" (binary_expression "iVar18 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar18 + iVar1;" (assignment_expression "iVar18 = iVar18 + iVar1" identifier = (binary_expression "iVar18 + iVar1" identifier + identifier)) ;) (if_statement "if (iVar1 < iVar18) {\n    uVar11 = *(undefined4 *)((int)this + 8);\n    uVar10 = *(undefined4 *)((int)this + 4);\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" if (parenthesized_expression "(iVar1 < iVar18)" ( (binary_expression "iVar1 < iVar18" identifier < identifier) )) (compound_statement "{\n    uVar11 = *(undefined4 *)((int)this + 8);\n    uVar10 = *(undefined4 *)((int)this + 4);\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" { (expression_statement "uVar11 = *(undefined4 *)((int)this + 8);" (assignment_expression "uVar11 = *(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) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)((int)this + 4);" (assignment_expression "uVar10 = *(undefined4 *)((int)this + 4)" identifier = (pointer_expression "*(undefined4 *)((int)this + 4)" * (cast_expression "(undefined4 *)((int)this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 4)" ( (binary_expression "(int)this + 4" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);" (assignment_expression "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);" (assignment_expression "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8" identifier + number_literal) ))))) ;) (expression_statement "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);" (assignment_expression "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);" do (compound_statement "{\n      if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    }" { (if_statement "if (*(int *)((int)this + 0xc) != 0) {\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }" if (parenthesized_expression "(*(int *)((int)this + 0xc) != 0)" ( (binary_expression "*(int *)((int)this + 0xc) != 0" (pointer_expression "*(int *)((int)this + 0xc)" * (cast_expression "(int *)((int)this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);\n        if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }\n        *(undefined4 *)((int)this + 0xc) = 0;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10);" (assignment_expression "iVar2 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10)" (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 "(uVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,uVar10)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(iVar12 + 0x18);\n          iVar7 = 0;\n          if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }\n          iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);\n          if (iVar2 != 0) goto LAB_0006667c;\n        }" { (expression_statement "iVar8 = *(int *)(iVar12 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar12 + 0x18)" identifier = (pointer_expression "*(int *)(iVar12 + 0x18)" * (cast_expression "(int *)(iVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar8) {\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n            iVar9 = *(int *)(iVar12 + 0x2d0);\n            iVar6 = *(int *)(iVar12 + 0x2c0);\n            pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);\n            pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);\n            pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);\n          }" { (expression_statement "iVar9 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2d0)" * (cast_expression "(int *)(iVar12 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar12 + 0x2c0);" (assignment_expression "iVar6 = *(int *)(iVar12 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4);" (assignment_expression "pfVar4 = (float *)(iVar2 + *(int *)(iVar9 + 8) * 4)" identifier = (cast_expression "(float *)(iVar2 + *(int *)(iVar9 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + *(int *)(iVar9 + 8) * 4)" ( (binary_expression "iVar2 + *(int *)(iVar9 + 8) * 4" identifier + (binary_expression "*(int *)(iVar9 + 8) * 4" (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4);" (assignment_expression "pfVar5 = (float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4)" identifier = (cast_expression "(float *)(iVar2 + *(int *)(iVar9 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + *(int *)(iVar9 + 0x14) * 4)" ( (binary_expression "iVar2 + *(int *)(iVar9 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar9 + 0x14) * 4" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4);" (assignment_expression "pfVar3 = (float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4)" identifier = (cast_expression "(float *)(iVar2 + *(int *)(iVar9 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + *(int *)(iVar9 + 0x20) * 4)" ( (binary_expression "iVar2 + *(int *)(iVar9 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar9 + 0x20) * 4" (pointer_expression "*(int *)(iVar9 + 0x20)" * (cast_expression "(int *)(iVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x20)" ( (binary_expression "iVar9 + 0x20" identifier + number_literal) )))) * number_literal)) )))) ;) (do_statement "do {\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            } while (iVar7 != iVar8);" do (compound_statement "{\n              fVar14 = *pfVar5;\n              iVar7 = iVar7 + 1;\n              pfVar5 = pfVar5 + iVar6;\n              fVar13 = *pfVar3;\n              pfVar3 = pfVar3 + iVar6;\n              *pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);\n              pfVar4 = pfVar4 + iVar6;\n            }" { (expression_statement "fVar14 = *pfVar5;" (assignment_expression "fVar14 = *pfVar5" identifier = (pointer_expression "*pfVar5" * identifier)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pfVar5 = pfVar5 + iVar6;" (assignment_expression "pfVar5 = pfVar5 + iVar6" identifier = (binary_expression "pfVar5 + iVar6" identifier + identifier)) ;) (expression_statement "fVar13 = *pfVar3;" (assignment_expression "fVar13 = *pfVar3" identifier = (pointer_expression "*pfVar3" * identifier)) ;) (expression_statement "pfVar3 = pfVar3 + iVar6;" (assignment_expression "pfVar3 = pfVar3 + iVar6" identifier = (binary_expression "pfVar3 + iVar6" identifier + identifier)) ;) (expression_statement "*pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16);" (assignment_expression "*pfVar4 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16)" (pointer_expression "*pfVar4" * identifier) = (cast_expression "(float)((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16)" ( (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17 + (double)fVar14 * dVar16" (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar4 * dVar17" (binary_expression "(double)fVar13 * dVar15" (cast_expression "(double)fVar13" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) + (binary_expression "(double)*pfVar4 * dVar17" (cast_expression "(double)*pfVar4" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar4" * identifier)) * identifier)) + (binary_expression "(double)fVar14 * dVar16" (cast_expression "(double)fVar14" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "pfVar4 = pfVar4 + iVar6;" (assignment_expression "pfVar4 = pfVar4 + iVar6" identifier = (binary_expression "pfVar4 + iVar6" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar7 != iVar8)" ( (binary_expression "iVar7 != iVar8" identifier != identifier) )) ;) })) (expression_statement "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);" (assignment_expression "iVar2 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10)" (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 "(uVar11,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0006667c;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006667c;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)((int)this + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)this + 0xc)" * (cast_expression "(undefined4 *)((int)this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0006667c:\n      iVar1 = iVar1 + 1;" statement_identifier : (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar18 != iVar1)" ( (binary_expression "iVar18 != iVar1" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000664f4(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000664f4(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000664f4(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "float *pfVar4;" primitive_type (pointer_declarator "*pfVar4" * identifier) ;) (declaration "float *pfVar5;" primitive_type (pointer_declarator "*pfVar5" * identifier) ;) (declaration "float *pfVar6;" primitive_type (pointer_declarator "*pfVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "float fVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 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 "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) / iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;" (assignment_expression "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1" identifier = (binary_expression "*(int *)(iVar12 + 0x1c) % iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" if (parenthesized_expression "(iVar2 < iVar1)" ( (binary_expression "iVar2 < iVar1" identifier < identifier) )) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) })) (expression_statement "iVar1 = iVar18 * iVar2 + iVar1;" (assignment_expression "iVar1 = iVar18 * iVar2 + iVar1" identifier = (binary_expression "iVar18 * iVar2 + iVar1" (binary_expression "iVar18 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar18 + iVar1;" (assignment_expression "iVar18 = iVar18 + iVar1" identifier = (binary_expression "iVar18 + iVar1" identifier + identifier)) ;) (if_statement "if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" if (parenthesized_expression "(iVar1 < iVar18)" ( (binary_expression "iVar1 < iVar18" identifier < identifier) )) (compound_statement "{\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" { (expression_statement "iVar11 = param_1[2];" (assignment_expression "iVar11 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[1];" (assignment_expression "iVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);" (assignment_expression "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);" (assignment_expression "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8" identifier + number_literal) ))))) ;) (expression_statement "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);" (assignment_expression "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);" do (compound_statement "{\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    }" { (if_statement "if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" identifier = (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" (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 "(iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" { (expression_statement "iVar9 = *(int *)(iVar12 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0x18)" identifier = (pointer_expression "*(int *)(iVar12 + 0x18)" * (cast_expression "(int *)(iVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" { (expression_statement "iVar10 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2d0)" * (cast_expression "(int *)(iVar12 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar12 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(iVar12 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "iVar3 + *(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 "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "iVar3 + *(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 "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "iVar3 + *(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)) )))) ;) (do_statement "do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);" do (compound_statement "{\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            }" { (expression_statement "fVar14 = *pfVar6;" (assignment_expression "fVar14 = *pfVar6" identifier = (pointer_expression "*pfVar6" * identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pfVar6 = pfVar6 + iVar7;" (assignment_expression "pfVar6 = pfVar6 + iVar7" identifier = (binary_expression "pfVar6 + iVar7" identifier + identifier)) ;) (expression_statement "fVar13 = *pfVar4;" (assignment_expression "fVar13 = *pfVar4" identifier = (pointer_expression "*pfVar4" * identifier)) ;) (expression_statement "pfVar4 = pfVar4 + iVar7;" (assignment_expression "pfVar4 = pfVar4 + iVar7" identifier = (binary_expression "pfVar4 + iVar7" identifier + identifier)) ;) (expression_statement "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);" (assignment_expression "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" (pointer_expression "*pfVar5" * identifier) = (cast_expression "(float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" ( (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16" (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17" (binary_expression "(double)fVar13 * dVar15" (cast_expression "(double)fVar13" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) + (binary_expression "(double)*pfVar5 * dVar17" (cast_expression "(double)*pfVar5" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar5" * identifier)) * identifier)) + (binary_expression "(double)fVar14 * dVar16" (cast_expression "(double)fVar14" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" identifier = (binary_expression "pfVar5 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar8 != iVar9)" ( (binary_expression "iVar8 != iVar9" identifier != identifier) )) ;) })) (expression_statement "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" (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 "(iVar11,iVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0006667c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006667c;" goto statement_identifier ;)) })) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0006667c:\n      iVar1 = iVar1 + 1;" statement_identifier : (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar18 != iVar1)" ( (binary_expression "iVar18 != iVar1" 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (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 = (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 = (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 (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 )))) ;) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (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 (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)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000664f4(int *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000664f4(int *param_1)" (identifier "FUN_000664f4") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  float *pfVar4;\n  float *pfVar5;\n  float *pfVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  float fVar13;\n  float fVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  int iVar18;\n  \n  iVar12 = *param_1;\n  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;\n  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;\n  if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }\n  iVar1 = iVar18 * iVar2 + iVar1;\n  iVar18 = iVar18 + iVar1;\n  if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "float *pfVar4;" (primitive_type "float") (pointer_declarator "*pfVar4" (* "*") (identifier "pfVar4")) (; ";")) (declaration "float *pfVar5;" (primitive_type "float") (pointer_declarator "*pfVar5" (* "*") (identifier "pfVar5")) (; ";")) (declaration "float *pfVar6;" (primitive_type "float") (pointer_declarator "*pfVar6" (* "*") (identifier "pfVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "float fVar13;" (primitive_type "float") (identifier "fVar13") (; ";")) (declaration "float fVar14;" (primitive_type "float") (identifier "fVar14") (; ";")) (declaration "double dVar15;" (primitive_type "double") (identifier "dVar15") (; ";")) (declaration "double dVar16;" (primitive_type "double") (identifier "dVar16") (; ";")) (declaration "double dVar17;" (primitive_type "double") (identifier "dVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" (identifier "iVar12") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)()" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" (( "(") (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" (* "*") (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_num_threads_003a990c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003a9508"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (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 "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x1c) / iVar1" (identifier "iVar18") (= "=") (binary_expression "*(int *)(iVar12 + 0x1c) / iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" (* "*") (cast_expression "(int *)(iVar12 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "iVar1"))) (; ";")) (expression_statement "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;" (assignment_expression "iVar1 = *(int *)(iVar12 + 0x1c) % iVar1" (identifier "iVar1") (= "=") (binary_expression "*(int *)(iVar12 + 0x1c) % iVar1" (pointer_expression "*(int *)(iVar12 + 0x1c)" (* "*") (cast_expression "(int *)(iVar12 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "iVar1"))) (; ";")) (if_statement "if (iVar2 < iVar1) {\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" (if "if") (parenthesized_expression "(iVar2 < iVar1)" (( "(") (binary_expression "iVar2 < iVar1" (identifier "iVar2") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar1 = 0;\n  }" ({ "{") (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar1 = iVar18 * iVar2 + iVar1;" (assignment_expression "iVar1 = iVar18 * iVar2 + iVar1" (identifier "iVar1") (= "=") (binary_expression "iVar18 * iVar2 + iVar1" (binary_expression "iVar18 * iVar2" (identifier "iVar18") (* "*") (identifier "iVar2")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "iVar18 = iVar18 + iVar1;" (assignment_expression "iVar18 = iVar18 + iVar1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + iVar1" (identifier "iVar18") (+ "+") (identifier "iVar1"))) (; ";")) (if_statement "if (iVar1 < iVar18) {\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" (if "if") (parenthesized_expression "(iVar1 < iVar18)" (( "(") (binary_expression "iVar1 < iVar18" (identifier "iVar1") (< "<") (identifier "iVar18")) () ")")) (compound_statement "{\n    iVar11 = param_1[2];\n    iVar2 = param_1[1];\n    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);\n    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);\n    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);\n    do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);\n  }" ({ "{") (expression_statement "iVar11 = param_1[2];" (assignment_expression "iVar11 = param_1[2]" (identifier "iVar11") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = param_1[1];" (assignment_expression "iVar2 = param_1[1]" (identifier "iVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);" (assignment_expression "dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" (identifier "dVar17") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3ed0")) () ")"))))) (; ";")) (expression_statement "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);" (assignment_expression "dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" (identifier "dVar16") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3ec8")) () ")"))))) (; ";")) (expression_statement "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);" (assignment_expression "dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" (identifier "dVar15") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3ec0")) () ")"))))) (; ";")) (do_statement "do {\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    } while (iVar18 != iVar1);" (do "do") (compound_statement "{\n      if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }\nLAB_0006667c:\n      iVar1 = iVar1 + 1;\n    }" ({ "{") (if_statement "if (param_1[3] != 0) {\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[3] != 0)" (( "(") (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);\n        if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }\n        param_1[3] = 0;\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)\n                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" (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 "(iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2)" (( "(") (identifier "iVar11") (, ",") (number_literal "0") (, ",") (identifier "iVar1") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = *(int *)(iVar12 + 0x18);\n          iVar8 = 0;\n          if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }\n          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);\n          if (iVar3 != 0) goto LAB_0006667c;\n        }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar12 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar12 + 0x18)" (* "*") (cast_expression "(int *)(iVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar9) {\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" (if "if") (parenthesized_expression "(0 < iVar9)" (( "(") (binary_expression "0 < iVar9" (number_literal "0") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            iVar10 = *(int *)(iVar12 + 0x2d0);\n            iVar7 = *(int *)(iVar12 + 0x2c0);\n            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);\n            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);\n            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);\n            do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);\n          }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(iVar12 + 0x2d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar12 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2d0)" (( "(") (binary_expression "iVar12 + 0x2d0" (identifier "iVar12") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar12 + 0x2c0);" (assignment_expression "iVar7 = *(int *)(iVar12 + 0x2c0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar12 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c0)" (( "(") (binary_expression "iVar12 + 0x2c0" (identifier "iVar12") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" (identifier "pfVar5") (= "=") (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "iVar3 + *(int *)(iVar10 + 8) * 4" (identifier "iVar3") (+ "+") (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 "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" (identifier "pfVar6") (= "=") (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (binary_expression "iVar3 + *(int *)(iVar10 + 0x14) * 4" (identifier "iVar3") (+ "+") (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 "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" (identifier "pfVar4") (= "=") (cast_expression "(float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (binary_expression "iVar3 + *(int *)(iVar10 + 0x20) * 4" (identifier "iVar3") (+ "+") (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"))) () ")")))) (; ";")) (do_statement "do {\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            } while (iVar8 != iVar9);" (do "do") (compound_statement "{\n              fVar14 = *pfVar6;\n              iVar8 = iVar8 + 1;\n              pfVar6 = pfVar6 + iVar7;\n              fVar13 = *pfVar4;\n              pfVar4 = pfVar4 + iVar7;\n              *pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);\n              pfVar5 = pfVar5 + iVar7;\n            }" ({ "{") (expression_statement "fVar14 = *pfVar6;" (assignment_expression "fVar14 = *pfVar6" (identifier "fVar14") (= "=") (pointer_expression "*pfVar6" (* "*") (identifier "pfVar6"))) (; ";")) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar6 = pfVar6 + iVar7;" (assignment_expression "pfVar6 = pfVar6 + iVar7" (identifier "pfVar6") (= "=") (binary_expression "pfVar6 + iVar7" (identifier "pfVar6") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "fVar13 = *pfVar4;" (assignment_expression "fVar13 = *pfVar4" (identifier "fVar13") (= "=") (pointer_expression "*pfVar4" (* "*") (identifier "pfVar4"))) (; ";")) (expression_statement "pfVar4 = pfVar4 + iVar7;" (assignment_expression "pfVar4 = pfVar4 + iVar7" (identifier "pfVar4") (= "=") (binary_expression "pfVar4 + iVar7" (identifier "pfVar4") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);" (assignment_expression "*pfVar5 = (float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" (pointer_expression "*pfVar5" (* "*") (identifier "pfVar5")) (= "=") (cast_expression "(float)((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16)" (( "(") (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16" (binary_expression "(double)fVar13 * dVar15 +\n                               (double)*pfVar5 * dVar17" (binary_expression "(double)fVar13 * dVar15" (cast_expression "(double)fVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar13")) (* "*") (identifier "dVar15")) (+ "+") (binary_expression "(double)*pfVar5 * dVar17" (cast_expression "(double)*pfVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar5" (* "*") (identifier "pfVar5"))) (* "*") (identifier "dVar17"))) (+ "+") (binary_expression "(double)fVar14 * dVar16" (cast_expression "(double)fVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar14")) (* "*") (identifier "dVar16"))) () ")")))) (; ";")) (expression_statement "pfVar5 = pfVar5 + iVar7;" (assignment_expression "pfVar5 = pfVar5 + iVar7" (identifier "pfVar5") (= "=") (binary_expression "pfVar5 + iVar7" (identifier "pfVar5") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != iVar9)" (( "(") (binary_expression "iVar8 != iVar9" (identifier "iVar8") (!= "!=") (identifier "iVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2)" (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 "(iVar11,iVar2)" (( "(") (identifier "iVar11") (, ",") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0006667c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006667c;" (goto "goto") (statement_identifier "LAB_0006667c") (; ";"))) (} "}"))) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0006667c:\n      iVar1 = iVar1 + 1;" (statement_identifier "LAB_0006667c") (: ":") (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar18 != iVar1)" (( "(") (binary_expression "iVar18 != iVar1" (identifier "iVar18") (!= "!=") (identifier "iVar1")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void sRGBTransformImage._omp_fn.15(anon_struct_16_4_3da89457 * param_0)
    */

void __thiscall function_1(void *this)

{
  int var_1;
  int var_4;
  float *var_12;
  float *var_16;
  float *var_10;
  int var_11;
  int var_9;
  int var_7;
  int var_8;
  type_1 uVar10;
  type_1 uVar11;
  int var_3;
  float fVar13;
  float fVar14;
  double var_13;
  double var_15;
  double var_14;
  int var_5;
  
                    /* WARNING: Load size is inaccurate */
  var_3 = *this;
  var_1 = (*(type_2 *)PTR_omp_get_num_threads_003a990c)();
  var_4 = (*(type_2 *)PTR_omp_get_thread_num_003a9508)();
  if (var_1 == 0) {
    var_2(7);
  }
  var_5 = *(int *)(var_3 + 0x1c) / var_1;
  var_1 = *(int *)(var_3 + 0x1c) % var_1;
  if (var_4 < var_1) {
    var_5 = var_5 + 1;
    var_1 = 0;
  }
  var_1 = var_5 * var_4 + var_1;
  var_5 = var_5 + var_1;
  if (var_1 < var_5) {
    uVar11 = *(type_1 *)((int)this + 8);
    uVar10 = *(type_1 *)((int)this + 4);
    var_14 = *(double *)(var_6 + -0x3ed0);
    var_15 = *(double *)(var_6 + -0x3ec8);
    var_13 = *(double *)(var_6 + -0x3ec0);
    do {
      if (*(int *)((int)this + 0xc) != 0) {
        var_4 = (*(type_2 *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (uVar11,0,var_1,*(type_1 *)(var_3 + 0x18),1,uVar10);
        if (var_4 != 0) {
          var_7 = *(int *)(var_3 + 0x18);
          var_9 = 0;
          if (0 < var_7) {
            var_8 = *(int *)(var_3 + 0x2d0);
            var_11 = *(int *)(var_3 + 0x2c0);
            var_16 = (float *)(var_4 + *(int *)(var_8 + 8) * 4);
            var_10 = (float *)(var_4 + *(int *)(var_8 + 0x14) * 4);
            var_12 = (float *)(var_4 + *(int *)(var_8 + 0x20) * 4);
            do {
              fVar14 = *var_10;
              var_9 = var_9 + 1;
              var_10 = var_10 + var_11;
              fVar13 = *var_12;
              var_12 = var_12 + var_11;
              *var_16 = (float)((double)fVar13 * var_13 +
                               (double)*var_16 * var_14 + (double)fVar14 * var_15);
              var_16 = var_16 + var_11;
            } while (var_9 != var_7);
          }
          var_4 = (*(type_2 *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(uVar11,uVar10);
          if (var_4 != 0) goto LAB_0006667c;
        }
        *(type_1 *)((int)this + 0xc) = 0;
      }
LAB_0006667c:
      var_1 = var_1 + 1;
    } while (var_5 != var_1);
  }
  return;
}


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

void MASKED(int *param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  float *pfVar4;
  float *pfVar5;
  float *pfVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  float fVar13;
  float fVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  int iVar18;
  
  iVar12 = *param_1;
  iVar1 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar2 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar1 == 0) {
    trap(7);
  }
  iVar18 = *(int *)(iVar12 + 0x1c) / iVar1;
  iVar1 = *(int *)(iVar12 + 0x1c) % iVar1;
  if (iVar2 < iVar1) {
    iVar18 = iVar18 + 1;
    iVar1 = 0;
  }
  iVar1 = iVar18 * iVar2 + iVar1;
  iVar18 = iVar18 + iVar1;
  if (iVar1 < iVar18) {
    iVar11 = param_1[2];
    iVar2 = param_1[1];
    dVar17 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ed0);
    dVar16 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec8);
    dVar15 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3ec0);
    do {
      if (param_1[3] != 0) {
        iVar3 = (*(code *)PTR_GetCacheViewAuthenticPixels_003a964c)
                          (iVar11,0,iVar1,*(undefined4 *)(iVar12 + 0x18),1,iVar2);
        if (iVar3 != 0) {
          iVar9 = *(int *)(iVar12 + 0x18);
          iVar8 = 0;
          if (0 < iVar9) {
            iVar10 = *(int *)(iVar12 + 0x2d0);
            iVar7 = *(int *)(iVar12 + 0x2c0);
            pfVar5 = (float *)(iVar3 + *(int *)(iVar10 + 8) * 4);
            pfVar6 = (float *)(iVar3 + *(int *)(iVar10 + 0x14) * 4);
            pfVar4 = (float *)(iVar3 + *(int *)(iVar10 + 0x20) * 4);
            do {
              fVar14 = *pfVar6;
              iVar8 = iVar8 + 1;
              pfVar6 = pfVar6 + iVar7;
              fVar13 = *pfVar4;
              pfVar4 = pfVar4 + iVar7;
              *pfVar5 = (float)((double)fVar13 * dVar15 +
                               (double)*pfVar5 * dVar17 + (double)fVar14 * dVar16);
              pfVar5 = pfVar5 + iVar7;
            } while (iVar8 != iVar9);
          }
          iVar3 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003a94f8)(iVar11,iVar2);
          if (iVar3 != 0) goto LAB_0006667c;
        }
        param_1[3] = 0;
      }
LAB_0006667c:
      iVar1 = iVar1 + 1;
    } while (iVar18 != iVar1);
  }
  return;
}

