
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

MagickBooleanType ReadUncompressedRGBPixels(Image *image,DDSInfo *dds_info,ExceptionInfo *exception)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  int iVar6;
  byte bVar9;
  size_t sVar7;
  uint uVar8;
  PixelChannelMap *pPVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  double dVar21;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  puVar1 = PTR_LAB_003a88e0;
  if ((int)image->rows < 1) {
    return MagickTrue;
  }
  iVar13 = 0;
  dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);
  dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
  dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  do {
    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);
    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    if (iVar6 == 0) {
      return MagickFalse;
    }
    if (0 < (int)image->columns) {
      iVar14 = 0;
      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);
      do {
        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {
          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);
          *(float *)(iVar6 + image->channel_map->offset * 4) =
               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));
LAB_00214780:
          iVar14 = iVar14 + 1;
          iVar6 = iVar6 + image->number_channels * 4;
          if ((int)image->columns <= iVar14) goto LAB_002148e0;
        }
        if (sVar7 != 0x10) {
          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          dVar15 = *(double *)(puVar3 + -0x5af0);
          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);
          bVar9 = (*(code *)puVar5)(image);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);
          bVar9 = (*(code *)puVar5)(image);
          sVar7 = (dds_info->pixelformat).rgb_bitcount;
          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);
          if (sVar7 == 0x20) {
            (*(code *)PTR_ReadBlobByte_003a97f0)(image);
          }
          goto LAB_00214780;
        }
        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);
        pPVar10 = image->channel_map;
        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;
        if (dVar18 <= dVar15) {
          dVar15 = dVar15 - dVar18;
        }
        iVar12 = pPVar10[1].offset;
        dVar17 = *(double *)(puVar1 + 0x1410);
        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + pPVar10->offset * 4) =
             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar17 <= dVar16) {
          dVar16 = dVar16 - dVar17;
        }
        iVar11 = pPVar10[2].offset;
        dVar17 = *(double *)(puVar1 + 0x1410);
        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *
                 *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + iVar12 * 4) =
             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar17 <= dVar15) {
          dVar15 = dVar15 - dVar17;
        }
        sVar7 = image->columns;
        iVar14 = iVar14 + 1;
        *(float *)(iVar6 + iVar11 * 4) =
             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));
        iVar6 = iVar6 + image->number_channels * 4;
      } while (iVar14 < (int)sVar7);
    }
LAB_002148e0:
    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);
    if (iVar6 == 0) {
      return MagickFalse;
    }
    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);
    if (iVar6 != 0) {
      return MagickFalse;
    }
    iVar13 = iVar13 + 1;
    if ((int)image->rows <= iVar13) {
      return MagickTrue;
    }
  } while( true );
}



undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  int iVar6;
  byte bVar8;
  uint uVar7;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  double dVar13;
  double dVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  puVar1 = PTR_LAB_003a88e0;
  if (*(int *)(param_1 + 0x1c) < 1) {
    return 1;
  }
  iVar11 = 0;
  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);
  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  do {
    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)
                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);
    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    if (iVar6 == 0) {
      return 0;
    }
    if (0 < *(int *)(param_1 + 0x18)) {
      iVar12 = 0;
      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);
      do {
        while (*(int *)(param_2 + 0x28) == 8) {
          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =
               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));
LAB_00214780:
          iVar12 = iVar12 + 1;
          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;
          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;
        }
        if (*(int *)(param_2 + 0x28) != 0x10) {
          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          dVar13 = *(double *)(puVar3 + -0x5af0);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =
               (float)((double)bVar8 * dVar13);
          bVar8 = (*(code *)puVar5)(param_1);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =
               (float)((double)bVar8 * dVar13);
          bVar8 = (*(code *)puVar5)(param_1);
          iVar9 = *(int *)(param_2 + 0x28);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =
               (float)((double)bVar8 * dVar13);
          if (iVar9 == 0x20) {
            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          }
          goto LAB_00214780;
        }
        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);
        iVar9 = *(int *)(param_1 + 0x2d0);
        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;
        if (dVar16 <= dVar13) {
          dVar13 = dVar13 - dVar16;
        }
        iVar10 = *(int *)(iVar9 + 0x14);
        dVar15 = *(double *)(puVar1 + 0x1410);
        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =
             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar15 <= dVar14) {
          dVar14 = dVar14 - dVar15;
        }
        iVar9 = *(int *)(iVar9 + 0x20);
        dVar15 = *(double *)(puVar1 + 0x1410);
        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *
                 *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + iVar10 * 4) =
             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar15 <= dVar13) {
          dVar13 = dVar13 - dVar15;
        }
        iVar10 = *(int *)(param_1 + 0x18);
        iVar12 = iVar12 + 1;
        *(float *)(iVar6 + iVar9 * 4) =
             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));
        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar12 < iVar10);
    }
LAB_002148e0:
    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);
    if (iVar6 == 0) {
      return 0;
    }
    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);
    if (iVar6 != 0) {
      return 0;
    }
    iVar11 = iVar11 + 1;
    if (*(int *)(param_1 + 0x1c) <= iVar11) {
      return 1;
    }
  } while( true );
}


lui gp,0x1a
addiu gp,gp,-0x3d48
addu gp,gp,t9
lw v0,0x1c(a0)
blez v0,0x00214a0c
_nop
addiu sp,sp,-0x78
lw v0,-0x7fc4(gp)
sdc1 f26,0x68(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
lw s5,-0x7fc8(gp)
lw s4,-0x7fd0(gp)
sdc1 f24,0x60(sp)
sw s3,0x34(sp)
or s3,zero,zero
sdc1 f20,0x50(sp)
sw s6,0x40(sp)
or s6,a2,zero
ldc1 f26,-0x62d8(v0)
sw s2,0x30(sp)
or s2,a1,zero
ldc1 f24,-0x5ae8(s5)
sw s0,0x28(sp)
or s0,a0,zero
ldc1 f20,0x1410(s4)
sw gp,0x18(sp)
sdc1 f28,0x70(sp)
sw ra,0x4c(sp)
sdc1 f22,0x58(sp)
sw s8,0x48(sp)
sw s7,0x44(sp)
sw s1,0x2c(sp)
sw v0,0x24(sp)
lw a3,0x18(s0)
li v0,0x1
lw t9,-0x798c(gp)
or a1,zero,zero
sw s6,0x14(sp)
or a2,s3,zero
sw v0,0x10(sp)
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
beq v0,zero,0x002149c4
_or s8,v0,zero
lw v0,0x18(s0)
blez v0,0x002148e0
_lw v0,-0x7fc4(gp)
or s7,zero,zero
lw s1,-0x7fc8(gp)
b 0x0021479c
_ldc1 f22,0x960(v0)
jalr t9
_or a0,s0,zero
or a0,s0,zero
andi v0,v0,0xff
ldc1 f28,-0x5af0(s1)
mtc1 v0,f0
lw v0,0x2d0(s0)
lw gp,0x18(sp)
lw a1,0x20(v0)
lw t9,-0x70c0(gp)
sll a1,a1,0x2
cvt.d.W f0,f0
addu a1,s8,a1
mul.D f0,f0,f28
cvt.s.D f0,f0
jalr t9
_swc1 f0,0x0(a1)
or a0,s0,zero
andi v0,v0,0xff
lw a1,0x2d0(s0)
mtc1 v0,f0
lw gp,0x18(sp)
lw a1,0x14(a1)
lw t9,-0x70c0(gp)
sll a1,a1,0x2
cvt.d.W f2,f0
addu a1,s8,a1
mul.D f2,f2,f28
cvt.s.D f2,f2
jalr t9
_swc1 f2,0x0(a1)
li a0,0x20
andi v0,v0,0xff
lw a2,0x2d0(s0)
mtc1 v0,f0
lw a1,0x28(s2)
lw gp,0x18(sp)
lw v0,0x8(a2)
sll v0,v0,0x2
cvt.d.W f0,f0
addu v0,s8,v0
mul.D f0,f0,f28
cvt.s.D f0,f0
beq a1,a0,0x002149b0
_swc1 f0,0x0(v0)
lw a0,0x2c0(s0)
addiu s7,s7,0x1
lw v0,0x18(s0)
sll a0,a0,0x2
slt v0,s7,v0
beq v0,zero,0x002148e0
_addu s8,s8,a0
lw v0,0x28(s2)
li a0,0x8
beq v0,a0,0x00214928
_li a0,0x10
bne v0,a0,0x002146cc
_lw t9,-0x70c0(gp)
lw t9,-0x7b30(gp)
jalr t9
_or a0,s0,zero
ext a1,v0,0xb,0x10
lw a0,0x2d0(s0)
lw gp,0x18(sp)
mtc1 a1,f0
lw a2,0x8(a0)
sll a2,a2,0x2
cvt.d.W f0,f0
div.D f0,f0,f26
mul.D f0,f0,f24
c.le.D f20,f0
bc1t 0x00214998
_addu a2,s8,a2
trunc.w.D f0,f0
mfc1 a1,f0
ext a3,v0,0x5,0x6
ldc1 f8,-0x5af0(s1)
andi a1,a1,0xff
lw t0,0x14(a0)
mtc1 a3,f0
ldc1 f6,-0x5ae8(s5)
mtc1 a1,f2
ldc1 f4,0x1410(s4)
sll a1,t0,0x2
addu a1,s8,a1
cvt.d.W f0,f0
cvt.d.W f2,f2
div.D f0,f0,f22
mul.D f2,f2,f8
mul.D f0,f0,f6
cvt.s.D f2,f2
c.le.D f4,f0
bc1t 0x1,0x00214980
_swc1 f2,0x0(a2)
trunc.w.D f0,f0
mfc1 a2,f0
andi v0,v0,0x1f
lw v1,0x24(sp)
mtc1 v0,f0
andi a2,a2,0xff
ldc1 f8,-0x5af0(s1)
lw a0,0x20(a0)
ldc1 f10,-0x62d8(v1)
mtc1 a2,f2
ldc1 f6,-0x5ae8(s5)
sll a0,a0,0x2
ldc1 f4,0x1410(s4)
addu a0,s8,a0
cvt.d.W f0,f0
cvt.d.W f2,f2
div.D f0,f0,f10
mul.D f2,f2,f8
mul.D f0,f0,f6
cvt.s.D f2,f2
c.le.D f4,f0
bc1t 0x2,0x00214968
_swc1 f2,0x0(a1)
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xff
ldc1 f2,-0x5af0(s1)
mtc1 v0,f0
lw v0,0x18(s0)
addiu s7,s7,0x1
slt v0,s7,v0
cvt.d.W f0,f0
mul.D f0,f0,f2
cvt.s.D f0,f0
swc1 f0,0x0(a0)
lw a0,0x2c0(s0)
sll a0,a0,0x2
bne v0,zero,0x0021479c
_addu s8,s8,a0
lw t9,-0x76cc(gp)
or a1,s6,zero
jalr t9
_or a0,s0,zero
beq v0,zero,0x002149c4
_lw gp,0x18(sp)
lw t9,-0x7168(gp)
jalr t9
_or a0,s0,zero
bne v0,zero,0x002149c4
_lw gp,0x18(sp)
lw v0,0x1c(s0)
addiu s3,s3,0x1
slt v0,s3,v0
bne v0,zero,0x00214680
_li v0,0x1
b 0x002149cc
_lw ra,0x4c(sp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
andi v0,v0,0xff
ldc1 f2,-0x5af0(s1)
mtc1 v0,f0
lw v0,0x2d0(s0)
lw gp,0x18(sp)
lw v0,0x8(v0)
sll v0,v0,0x2
cvt.d.W f0,f0
addu v0,s8,v0
mul.D f0,f0,f2
cvt.s.D f0,f0
b 0x00214780
_swc1 f0,0x0(v0)
sub.D D f0,f0,f4
lui a1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
b 0x002148a8
_or v0,v0,a1
sub.D D f0,f0,f4
lui a3,0x8000
trunc.w.D f0,f0
mfc1 a2,f0
b 0x0021484c
_or a2,a2,a3
sub.D D f0,f0,f20
lui a3,0x8000
trunc.w.D f0,f0
mfc1 a1,f0
b 0x002147f8
_or a1,a1,a3
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
b 0x00214780
_lw gp,0x18(sp)
or v0,zero,zero
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
ldc1 f28,0x70(sp)
ldc1 f26,0x68(sp)
ldc1 f24,0x60(sp)
ldc1 f22,0x58(sp)
ldc1 f20,0x50(sp)
jr ra
_addiu sp,sp,0x78
jr ra
_li v0,0x1
(translation_unit "undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_002145f8(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier 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 "double dVar13;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);" (assignment_expression "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x62d8)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x62d8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x62d8" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  }" { (expression_statement "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" identifier = (call_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" (parenthesized_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)" ( (pointer_expression "*(code *)PTR_QueueAuthenticPixels_003a8f24" * (cast_expression "(code *)PTR_QueueAuthenticPixels_003a8f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" if (parenthesized_expression "(0 < *(int *)(param_1 + 0x18))" ( (binary_expression "0 < *(int *)(param_1 + 0x18)" number_literal < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);" (assignment_expression "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + 0x960)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + 0x960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x960)" ( (binary_expression "PTR_s_courses_003a88ec + 0x960" identifier + number_literal) ))))) ;) (do_statement "do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);" do (compound_statement "{\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (while_statement "while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" while (parenthesized_expression "(*(int *)(param_2 + 0x28) == 8)" ( (binary_expression "*(int *)(param_2 + 0x28) == 8" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" { (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)bVar8 * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (labeled_statement "LAB_00214780:\n          iVar12 = iVar12 + 1;" statement_identifier : (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;)) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;" if (parenthesized_expression "(*(int *)(param_1 + 0x18) <= iVar12)" ( (binary_expression "*(int *)(param_1 + 0x18) <= iVar12" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_002148e0;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0x10)" ( (binary_expression "*(int *)(param_2 + 0x28) != 0x10" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" { (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "dVar13 = *(double *)(puVar3 + -0x5af0);" (assignment_expression "dVar13 = *(double *)(puVar3 + -0x5af0)" identifier = (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" identifier = (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" identifier = (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(param_2 + 0x28);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x28)" identifier = (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (if_statement "if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" { (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) (goto_statement "goto LAB_00214780;" goto statement_identifier ;) })) (expression_statement "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);" (assignment_expression "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobShort_003a8d80)" ( (pointer_expression "*(code *)PTR_ReadBlobShort_003a8d80" * (cast_expression "(code *)PTR_ReadBlobShort_003a8d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;" (assignment_expression "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" identifier = (binary_expression "((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" (parenthesized_expression "((double)((uVar7 << 5) >> 0x10) / dVar19)" ( (binary_expression "(double)((uVar7 << 5) >> 0x10) / dVar19" (cast_expression "(double)((uVar7 << 5) >> 0x10)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar7 << 5) >> 0x10)" ( (binary_expression "(uVar7 << 5) >> 0x10" (parenthesized_expression "(uVar7 << 5)" ( (binary_expression "uVar7 << 5" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * identifier)) ;) (if_statement "if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }" if (parenthesized_expression "(dVar16 <= dVar13)" ( (binary_expression "dVar16 <= dVar13" identifier <= identifier) )) (compound_statement "{\n          dVar13 = dVar13 - dVar16;\n        }" { (expression_statement "dVar13 = dVar13 - dVar16;" (assignment_expression "dVar13 = dVar13 - dVar16" identifier = (binary_expression "dVar13 - dVar16" identifier - identifier)) ;) })) (expression_statement "iVar10 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x14)" identifier = (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) ))))) ;) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17)" ( (binary_expression "(double)((uVar7 << 0x15) >> 0x1a) / dVar17" (cast_expression "(double)((uVar7 << 0x15) >> 0x1a)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar7 << 0x15) >> 0x1a)" ( (binary_expression "(uVar7 << 0x15) >> 0x1a" (parenthesized_expression "(uVar7 << 0x15)" ( (binary_expression "uVar7 << 0x15" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar9 + 8) * 4)" ( (binary_expression "iVar6 + *(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)) )))) = (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar13 & 0xff)" ( (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }" if (parenthesized_expression "(dVar15 <= dVar14)" ( (binary_expression "dVar15 <= dVar14" identifier <= identifier) )) (compound_statement "{\n          dVar14 = dVar14 - dVar15;\n        }" { (expression_statement "dVar14 = dVar14 - dVar15;" (assignment_expression "dVar14 = dVar14 - dVar15" identifier = (binary_expression "dVar14 - dVar15" identifier - identifier)) ;) })) (expression_statement "iVar9 = *(int *)(iVar9 + 0x20);" (assignment_expression "iVar9 = *(int *)(iVar9 + 0x20)" identifier = (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) ))))) ;) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8))" ( (binary_expression "(double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)" (cast_expression "(double)(uVar7 & 0x1f)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))) / (pointer_expression "*(double *)(puVar4 + -0x62d8)" * (cast_expression "(double *)(puVar4 + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x62d8)" ( (binary_expression "puVar4 + -0x62d8" identifier + number_literal) ))))) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar10 * 4)" * (cast_expression "(float *)(iVar6 + iVar10 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10 * 4)" ( (binary_expression "iVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar14 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar14 & 0xff)" ( (binary_expression "(int)dVar14 & 0xff" (cast_expression "(int)dVar14" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }" if (parenthesized_expression "(dVar15 <= dVar13)" ( (binary_expression "dVar15 <= dVar13" identifier <= identifier) )) (compound_statement "{\n          dVar13 = dVar13 - dVar15;\n        }" { (expression_statement "dVar13 = dVar13 - dVar15;" (assignment_expression "dVar13 = dVar13 - dVar15" identifier = (binary_expression "dVar13 - dVar15" identifier - identifier)) ;) })) (expression_statement "iVar10 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar9 * 4)" * (cast_expression "(float *)(iVar6 + iVar9 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar9 * 4)" ( (binary_expression "iVar6 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar13 & 0xff)" ( (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar12 < iVar10)" ( (binary_expression "iVar12 < iVar10" identifier < identifier) )) ;) })) (labeled_statement "LAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" statement_identifier : (expression_statement "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" identifier = (call_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)" ( (pointer_expression "*(code *)PTR_SyncAuthenticPixels_003a91e4" * (cast_expression "(code *)PTR_SyncAuthenticPixels_003a91e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;)) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(param_1)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= iVar11)" ( (binary_expression "*(int *)(param_1 + 0x1c) <= iVar11" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType ReadUncompressedRGBPixels(Image *image,DDSInfo *dds_info,ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar9;\n  size_t sVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if ((int)image->rows < 1) {\n    return MagickTrue;\n  }\n  iVar13 = 0;\n  dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);\n    if (iVar6 != 0) {\n      return MagickFalse;\n    }\n    iVar13 = iVar13 + 1;\n    if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }\n  } while( true );\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType ReadUncompressedRGBPixels(Image *image,DDSInfo *dds_info,ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar9;\n  size_t sVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if ((int)image->rows < 1) {\n    return MagickTrue;\n  }\n  iVar13 = 0;\n  dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);\n    if (iVar6 != 0) {\n      return MagickFalse;\n    }\n    iVar13 = iVar13 + 1;\n    if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }\n  } while( true );\n}" type_identifier (function_declarator "ReadUncompressedRGBPixels(Image *image,DDSInfo *dds_info,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,DDSInfo *dds_info,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "DDSInfo *dds_info" type_identifier (pointer_declarator "*dds_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar9;\n  size_t sVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  double dVar21;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if ((int)image->rows < 1) {\n    return MagickTrue;\n  }\n  iVar13 = 0;\n  dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);\n    if (iVar6 != 0) {\n      return MagickFalse;\n    }\n    iVar13 = iVar13 + 1;\n    if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar10;" type_identifier (pointer_declarator "*pPVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (declaration "double dVar21;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if ((int)image->rows < 1) {\n    return MagickTrue;\n  }" if (parenthesized_expression "((int)image->rows < 1)" ( (binary_expression "(int)image->rows < 1" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n    return MagickTrue;\n  }" { (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);" (assignment_expression "dVar21 = *(double *)(PTR_s_courses_003a88ec + -0x62d8)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x62d8)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x62d8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x62d8" identifier + number_literal) ))))) ;) (expression_statement "dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar20 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar18 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);\n    if (iVar6 != 0) {\n      return MagickFalse;\n    }\n    iVar13 = iVar13 + 1;\n    if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }\n  } while( true );" do (compound_statement "{\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);\n    if (iVar6 == 0) {\n      return MagickFalse;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);\n    if (iVar6 != 0) {\n      return MagickFalse;\n    }\n    iVar13 = iVar13 + 1;\n    if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }\n  }" { (expression_statement "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception);" (assignment_expression "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception)" identifier = (call_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)(image,0,iVar13,image->columns,1,exception)" (parenthesized_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)" ( (pointer_expression "*(code *)PTR_QueueAuthenticPixels_003a8f24" * (cast_expression "(code *)PTR_QueueAuthenticPixels_003a8f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,0,iVar13,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n      return MagickFalse;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return MagickFalse;\n    }" { (return_statement "return MagickFalse;" return identifier ;) })) (if_statement "if (0 < (int)image->columns) {\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }" if (parenthesized_expression "(0 < (int)image->columns)" ( (binary_expression "0 < (int)image->columns" number_literal < (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier))) )) (compound_statement "{\n      iVar14 = 0;\n      dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);\n    }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960);" (assignment_expression "dVar19 = *(double *)(PTR_s_courses_003a88ec + 0x960)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + 0x960)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + 0x960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x960)" ( (binary_expression "PTR_s_courses_003a88ec + 0x960" identifier + number_literal) ))))) ;) (do_statement "do {\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      } while (iVar14 < (int)sVar7);" do (compound_statement "{\n        while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }\n        if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }\n        uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);\n        pPVar10 = image->channel_map;\n        dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;\n        if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }\n        iVar12 = pPVar10[1].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }\n        iVar11 = pPVar10[2].offset;\n        dVar17 = *(double *)(puVar1 + 0x1410);\n        dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }\n        sVar7 = image->columns;\n        iVar14 = iVar14 + 1;\n        *(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + image->number_channels * 4;\n      }" { (while_statement "while (sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }" while (parenthesized_expression "(sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8)" ( (comma_expression "sVar7 = (dds_info->pixelformat).rgb_bitcount, sVar7 == 8" (assignment_expression "sVar7 = (dds_info->pixelformat).rgb_bitcount" identifier = (field_expression "(dds_info->pixelformat).rgb_bitcount" (parenthesized_expression "(dds_info->pixelformat)" ( (field_expression "dds_info->pixelformat" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "sVar7 == 8" identifier == number_literal)) )) (compound_statement "{\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          *(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar14 = iVar14 + 1;\n          iVar6 = iVar6 + image->number_channels * 4;\n          if ((int)image->columns <= iVar14) goto LAB_002148e0;\n        }" { (expression_statement "bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);" (assignment_expression "bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(image)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "*(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + image->channel_map->offset * 4) =\n               (float)((double)bVar9 * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar6 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + image->channel_map->offset * 4)" ( (binary_expression "iVar6 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) )))) = (cast_expression "(float)((double)bVar9 * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar9 * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)bVar9 * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)bVar9" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (labeled_statement "LAB_00214780:\n          iVar14 = iVar14 + 1;" statement_identifier : (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;)) (expression_statement "iVar6 = iVar6 + image->number_channels * 4;" (assignment_expression "iVar6 = iVar6 + image->number_channels * 4" identifier = (binary_expression "iVar6 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal))) ;) (if_statement "if ((int)image->columns <= iVar14) goto LAB_002148e0;" if (parenthesized_expression "((int)image->columns <= iVar14)" ( (binary_expression "(int)image->columns <= iVar14" (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_002148e0;" goto statement_identifier ;)) })) (if_statement "if (sVar7 != 0x10) {\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }" if (parenthesized_expression "(sVar7 != 0x10)" ( (binary_expression "sVar7 != 0x10" identifier != number_literal) )) (compound_statement "{\n          bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar15 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);\n          bVar9 = (*(code *)puVar5)(image);\n          sVar7 = (dds_info->pixelformat).rgb_bitcount;\n          *(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);\n          if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }\n          goto LAB_00214780;\n        }" { (expression_statement "bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image);" (assignment_expression "bVar9 = (*(code *)PTR_ReadBlobByte_003a97f0)(image)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(image)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "dVar15 = *(double *)(puVar3 + -0x5af0);" (assignment_expression "dVar15 = *(double *)(puVar3 + -0x5af0)" identifier = (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15);" (assignment_expression "*(float *)(iVar6 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * dVar15)" (pointer_expression "*(float *)(iVar6 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar6 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar6 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)((double)bVar9 * dVar15)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar9 * dVar15)" ( (binary_expression "(double)bVar9 * dVar15" (cast_expression "(double)bVar9" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar9 = (*(code *)puVar5)(image);" (assignment_expression "bVar9 = (*(code *)puVar5)(image)" identifier = (call_expression "(*(code *)puVar5)(image)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "*(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15);" (assignment_expression "*(float *)(iVar6 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * dVar15)" (pointer_expression "*(float *)(iVar6 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar6 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar6 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) = (cast_expression "(float)((double)bVar9 * dVar15)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar9 * dVar15)" ( (binary_expression "(double)bVar9 * dVar15" (cast_expression "(double)bVar9" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar9 = (*(code *)puVar5)(image);" (assignment_expression "bVar9 = (*(code *)puVar5)(image)" identifier = (call_expression "(*(code *)puVar5)(image)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "sVar7 = (dds_info->pixelformat).rgb_bitcount;" (assignment_expression "sVar7 = (dds_info->pixelformat).rgb_bitcount" identifier = (field_expression "(dds_info->pixelformat).rgb_bitcount" (parenthesized_expression "(dds_info->pixelformat)" ( (field_expression "dds_info->pixelformat" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15);" (assignment_expression "*(float *)(iVar6 + image->channel_map->offset * 4) = (float)((double)bVar9 * dVar15)" (pointer_expression "*(float *)(iVar6 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar6 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + image->channel_map->offset * 4)" ( (binary_expression "iVar6 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) )))) = (cast_expression "(float)((double)bVar9 * dVar15)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar9 * dVar15)" ( (binary_expression "(double)bVar9 * dVar15" (cast_expression "(double)bVar9" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (if_statement "if (sVar7 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }" if (parenthesized_expression "(sVar7 == 0x20)" ( (binary_expression "sVar7 == 0x20" identifier == number_literal) )) (compound_statement "{\n            (*(code *)PTR_ReadBlobByte_003a97f0)(image);\n          }" { (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(image);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(image)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier ))) ;) })) (goto_statement "goto LAB_00214780;" goto statement_identifier ;) })) (expression_statement "uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image);" (assignment_expression "uVar8 = (*(code *)PTR_ReadBlobShort_003a8d80)(image)" identifier = (call_expression "(*(code *)PTR_ReadBlobShort_003a8d80)(image)" (parenthesized_expression "(*(code *)PTR_ReadBlobShort_003a8d80)" ( (pointer_expression "*(code *)PTR_ReadBlobShort_003a8d80" * (cast_expression "(code *)PTR_ReadBlobShort_003a8d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "pPVar10 = image->channel_map;" (assignment_expression "pPVar10 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20;" (assignment_expression "dVar15 = ((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20" identifier = (binary_expression "((double)((uVar8 << 5) >> 0x10) / dVar21) * dVar20" (parenthesized_expression "((double)((uVar8 << 5) >> 0x10) / dVar21)" ( (binary_expression "(double)((uVar8 << 5) >> 0x10) / dVar21" (cast_expression "(double)((uVar8 << 5) >> 0x10)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar8 << 5) >> 0x10)" ( (binary_expression "(uVar8 << 5) >> 0x10" (parenthesized_expression "(uVar8 << 5)" ( (binary_expression "uVar8 << 5" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * identifier)) ;) (if_statement "if (dVar18 <= dVar15) {\n          dVar15 = dVar15 - dVar18;\n        }" if (parenthesized_expression "(dVar18 <= dVar15)" ( (binary_expression "dVar18 <= dVar15" identifier <= identifier) )) (compound_statement "{\n          dVar15 = dVar15 - dVar18;\n        }" { (expression_statement "dVar15 = dVar15 - dVar18;" (assignment_expression "dVar15 = dVar15 - dVar18" identifier = (binary_expression "dVar15 - dVar18" identifier - identifier)) ;) })) (expression_statement "iVar12 = pPVar10[1].offset;" (assignment_expression "iVar12 = pPVar10[1].offset" identifier = (field_expression "pPVar10[1].offset" (subscript_expression "pPVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "dVar17 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar17 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar16 = ((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)((uVar8 << 0x15) >> 0x1a) / dVar19) * *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)((uVar8 << 0x15) >> 0x1a) / dVar19)" ( (binary_expression "(double)((uVar8 << 0x15) >> 0x1a) / dVar19" (cast_expression "(double)((uVar8 << 0x15) >> 0x1a)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar8 << 0x15) >> 0x1a)" ( (binary_expression "(uVar8 << 0x15) >> 0x1a" (parenthesized_expression "(uVar8 << 0x15)" ( (binary_expression "uVar8 << 0x15" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + pPVar10->offset * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + pPVar10->offset * 4)" * (cast_expression "(float *)(iVar6 + pPVar10->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + pPVar10->offset * 4)" ( (binary_expression "iVar6 + pPVar10->offset * 4" identifier + (binary_expression "pPVar10->offset * 4" (field_expression "pPVar10->offset" identifier -> field_identifier) * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar15 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar15 & 0xff)" ( (binary_expression "(int)dVar15 & 0xff" (cast_expression "(int)dVar15" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar17 <= dVar16) {\n          dVar16 = dVar16 - dVar17;\n        }" if (parenthesized_expression "(dVar17 <= dVar16)" ( (binary_expression "dVar17 <= dVar16" identifier <= identifier) )) (compound_statement "{\n          dVar16 = dVar16 - dVar17;\n        }" { (expression_statement "dVar16 = dVar16 - dVar17;" (assignment_expression "dVar16 = dVar16 - dVar17" identifier = (binary_expression "dVar16 - dVar17" identifier - identifier)) ;) })) (expression_statement "iVar11 = pPVar10[2].offset;" (assignment_expression "iVar11 = pPVar10[2].offset" identifier = (field_expression "pPVar10[2].offset" (subscript_expression "pPVar10[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "dVar17 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar17 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar15 = ((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8))" ( (binary_expression "(double)(uVar8 & 0x1f) / *(double *)(puVar4 + -0x62d8)" (cast_expression "(double)(uVar8 & 0x1f)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) ))) / (pointer_expression "*(double *)(puVar4 + -0x62d8)" * (cast_expression "(double *)(puVar4 + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x62d8)" ( (binary_expression "puVar4 + -0x62d8" identifier + number_literal) ))))) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar12 * 4) =\n             (float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar12 * 4)" * (cast_expression "(float *)(iVar6 + iVar12 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar12 * 4)" ( (binary_expression "iVar6 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar16 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar16 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar16 & 0xff)" ( (binary_expression "(int)dVar16 & 0xff" (cast_expression "(int)dVar16" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar17 <= dVar15) {\n          dVar15 = dVar15 - dVar17;\n        }" if (parenthesized_expression "(dVar17 <= dVar15)" ( (binary_expression "dVar17 <= dVar15" identifier <= identifier) )) (compound_statement "{\n          dVar15 = dVar15 - dVar17;\n        }" { (expression_statement "dVar15 = dVar15 - dVar17;" (assignment_expression "dVar15 = dVar15 - dVar17" identifier = (binary_expression "dVar15 - dVar17" identifier - identifier)) ;) })) (expression_statement "sVar7 = image->columns;" (assignment_expression "sVar7 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar11 * 4) =\n             (float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar11 * 4)" * (cast_expression "(float *)(iVar6 + iVar11 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar11 * 4)" ( (binary_expression "iVar6 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar15 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar15 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar15 & 0xff)" ( (binary_expression "(int)dVar15 & 0xff" (cast_expression "(int)dVar15" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar6 = iVar6 + image->number_channels * 4;" (assignment_expression "iVar6 = iVar6 + image->number_channels * 4" identifier = (binary_expression "iVar6 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal))) ;) }) while (parenthesized_expression "(iVar14 < (int)sVar7)" ( (binary_expression "iVar14 < (int)sVar7" identifier < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (labeled_statement "LAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);" statement_identifier : (expression_statement "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);" (assignment_expression "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception)" identifier = (call_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)(image,exception)" (parenthesized_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)" ( (pointer_expression "*(code *)PTR_SyncAuthenticPixels_003a91e4" * (cast_expression "(code *)PTR_SyncAuthenticPixels_003a91e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,exception)" ( identifier , identifier )))) ;)) (if_statement "if (iVar6 == 0) {\n      return MagickFalse;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return MagickFalse;\n    }" { (return_statement "return MagickFalse;" return identifier ;) })) (expression_statement "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image);" (assignment_expression "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(image)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(image)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n      return MagickFalse;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      return MagickFalse;\n    }" { (return_statement "return MagickFalse;" return identifier ;) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if ((int)image->rows <= iVar13) {\n      return MagickTrue;\n    }" if (parenthesized_expression "((int)image->rows <= iVar13)" ( (binary_expression "(int)image->rows <= iVar13" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) <= identifier) )) (compound_statement "{\n      return MagickTrue;\n    }" { (return_statement "return MagickTrue;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_002145f8(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier 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 "double dVar13;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);" (assignment_expression "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x62d8)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x62d8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x62d8" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  }" { (expression_statement "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" identifier = (call_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" (parenthesized_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)" ( (pointer_expression "*(code *)PTR_QueueAuthenticPixels_003a8f24" * (cast_expression "(code *)PTR_QueueAuthenticPixels_003a8f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" if (parenthesized_expression "(0 < *(int *)(param_1 + 0x18))" ( (binary_expression "0 < *(int *)(param_1 + 0x18)" number_literal < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);" (assignment_expression "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + 0x960)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + 0x960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x960)" ( (binary_expression "PTR_s_courses_003a88ec + 0x960" identifier + number_literal) ))))) ;) (do_statement "do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);" do (compound_statement "{\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (while_statement "while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" while (parenthesized_expression "(*(int *)(param_2 + 0x28) == 8)" ( (binary_expression "*(int *)(param_2 + 0x28) == 8" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" { (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)bVar8 * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (labeled_statement "LAB_00214780:\n          iVar12 = iVar12 + 1;" statement_identifier : (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;)) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;" if (parenthesized_expression "(*(int *)(param_1 + 0x18) <= iVar12)" ( (binary_expression "*(int *)(param_1 + 0x18) <= iVar12" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_002148e0;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0x10)" ( (binary_expression "*(int *)(param_2 + 0x28) != 0x10" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" { (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "dVar13 = *(double *)(puVar3 + -0x5af0);" (assignment_expression "dVar13 = *(double *)(puVar3 + -0x5af0)" identifier = (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" identifier = (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" identifier = (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(param_2 + 0x28);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x28)" identifier = (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)((double)bVar8 * dVar13)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)bVar8 * dVar13)" ( (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )))) ;) (if_statement "if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" { (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) (goto_statement "goto LAB_00214780;" goto statement_identifier ;) })) (expression_statement "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);" (assignment_expression "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" identifier = (call_expression "(*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobShort_003a8d80)" ( (pointer_expression "*(code *)PTR_ReadBlobShort_003a8d80" * (cast_expression "(code *)PTR_ReadBlobShort_003a8d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;" (assignment_expression "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" identifier = (binary_expression "((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" (parenthesized_expression "((double)((uVar7 << 5) >> 0x10) / dVar19)" ( (binary_expression "(double)((uVar7 << 5) >> 0x10) / dVar19" (cast_expression "(double)((uVar7 << 5) >> 0x10)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar7 << 5) >> 0x10)" ( (binary_expression "(uVar7 << 5) >> 0x10" (parenthesized_expression "(uVar7 << 5)" ( (binary_expression "uVar7 << 5" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * identifier)) ;) (if_statement "if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }" if (parenthesized_expression "(dVar16 <= dVar13)" ( (binary_expression "dVar16 <= dVar13" identifier <= identifier) )) (compound_statement "{\n          dVar13 = dVar13 - dVar16;\n        }" { (expression_statement "dVar13 = dVar13 - dVar16;" (assignment_expression "dVar13 = dVar13 - dVar16" identifier = (binary_expression "dVar13 - dVar16" identifier - identifier)) ;) })) (expression_statement "iVar10 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x14)" identifier = (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) ))))) ;) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17)" ( (binary_expression "(double)((uVar7 << 0x15) >> 0x1a) / dVar17" (cast_expression "(double)((uVar7 << 0x15) >> 0x1a)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((uVar7 << 0x15) >> 0x1a)" ( (binary_expression "(uVar7 << 0x15) >> 0x1a" (parenthesized_expression "(uVar7 << 0x15)" ( (binary_expression "uVar7 << 0x15" identifier << number_literal) )) >> number_literal) ))) / identifier) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar9 + 8) * 4)" ( (binary_expression "iVar6 + *(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)) )))) = (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar13 & 0xff)" ( (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }" if (parenthesized_expression "(dVar15 <= dVar14)" ( (binary_expression "dVar15 <= dVar14" identifier <= identifier) )) (compound_statement "{\n          dVar14 = dVar14 - dVar15;\n        }" { (expression_statement "dVar14 = dVar14 - dVar15;" (assignment_expression "dVar14 = dVar14 - dVar15" identifier = (binary_expression "dVar14 - dVar15" identifier - identifier)) ;) })) (expression_statement "iVar9 = *(int *)(iVar9 + 0x20);" (assignment_expression "iVar9 = *(int *)(iVar9 + 0x20)" identifier = (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) ))))) ;) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" identifier = (binary_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8))" ( (binary_expression "(double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)" (cast_expression "(double)(uVar7 & 0x1f)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))) / (pointer_expression "*(double *)(puVar4 + -0x62d8)" * (cast_expression "(double *)(puVar4 + -0x62d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x62d8)" ( (binary_expression "puVar4 + -0x62d8" identifier + number_literal) ))))) )) * (pointer_expression "*(double *)(puVar2 + -0x5ae8)" * (cast_expression "(double *)(puVar2 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x5ae8)" ( (binary_expression "puVar2 + -0x5ae8" identifier + number_literal) )))))) ;) (expression_statement "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar10 * 4)" * (cast_expression "(float *)(iVar6 + iVar10 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10 * 4)" ( (binary_expression "iVar6 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar14 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar14 & 0xff)" ( (binary_expression "(int)dVar14 & 0xff" (cast_expression "(int)dVar14" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (if_statement "if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }" if (parenthesized_expression "(dVar15 <= dVar13)" ( (binary_expression "dVar15 <= dVar13" identifier <= identifier) )) (compound_statement "{\n          dVar13 = dVar13 - dVar15;\n        }" { (expression_statement "dVar13 = dVar13 - dVar15;" (assignment_expression "dVar13 = dVar13 - dVar15" identifier = (binary_expression "dVar13 - dVar15" identifier - identifier)) ;) })) (expression_statement "iVar10 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar9 * 4)" * (cast_expression "(float *)(iVar6 + iVar9 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar9 * 4)" ( (binary_expression "iVar6 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" ( (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((int)dVar13 & 0xff)" ( (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) * (pointer_expression "*(double *)(puVar3 + -0x5af0)" * (cast_expression "(double *)(puVar3 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5af0)" ( (binary_expression "puVar3 + -0x5af0" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar12 < iVar10)" ( (binary_expression "iVar12 < iVar10" identifier < identifier) )) ;) })) (labeled_statement "LAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" statement_identifier : (expression_statement "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" identifier = (call_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)" ( (pointer_expression "*(code *)PTR_SyncAuthenticPixels_003a91e4" * (cast_expression "(code *)PTR_SyncAuthenticPixels_003a91e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier )))) ;)) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(param_1)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= iVar11)" ( (binary_expression "*(int *)(param_1 + 0x1c) <= iVar11" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) / IDENT) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) / IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & LIT) ))) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined4 FUN_002145f8(int param_1,int param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "FUN_002145f8(int param_1,int param_2,undefined4 param_3)" (identifier "FUN_002145f8") (parameter_list "(int param_1,int param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int iVar6;\n  byte bVar8;\n  uint uVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  double dVar13;\n  double dVar14;\n  double dVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  double dVar19;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  puVar1 = PTR_LAB_003a88e0;\n  if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }\n  iVar11 = 0;\n  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);\n  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n  do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (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 "double dVar13;" (primitive_type "double") (identifier "dVar13") (; ";")) (declaration "double dVar14;" (primitive_type "double") (identifier "dVar14") (; ";")) (declaration "double dVar15;" (primitive_type "double") (identifier "dVar15") (; ";")) (declaration "double dVar16;" (primitive_type "double") (identifier "dVar16") (; ";")) (declaration "double dVar17;" (primitive_type "double") (identifier "dVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "double dVar19;" (primitive_type "double") (identifier "dVar19") (; ";")) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" (identifier "puVar4") (= "=") (identifier "PTR_s_courses_003a88ec")) (; ";")) (expression_statement "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "puVar2") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";")) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" (identifier "puVar1") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) < 1) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) < 1" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);" (assignment_expression "dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8)" (identifier "dVar19") (= "=") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x62d8)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x62d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x62d8)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x62d8" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x62d8")) () ")"))))) (; ";")) (expression_statement "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (identifier "dVar18") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5ae8")) () ")"))))) (; ";")) (expression_statement "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar16") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1410" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (do_statement "do {\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);\n    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    if (iVar6 == 0) {\n      return 0;\n    }\n    if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }\nLAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);\n    if (iVar6 != 0) {\n      return 0;\n    }\n    iVar11 = iVar11 + 1;\n    if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)\n                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" (parenthesized_expression "(*(code *)PTR_QueueAuthenticPixels_003a8f24)" (( "(") (pointer_expression "*(code *)PTR_QueueAuthenticPixels_003a8f24" (* "*") (cast_expression "(code *)PTR_QueueAuthenticPixels_003a8f24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_QueueAuthenticPixels_003a8f24"))) () ")")) (argument_list "(param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "iVar11") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "puVar3") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";")) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(param_1 + 0x18)) {\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" (if "if") (parenthesized_expression "(0 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "0 < *(int *)(param_1 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      iVar12 = 0;\n      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);\n      do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);\n    }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);" (assignment_expression "dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960)" (identifier "dVar17") (= "=") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + 0x960)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + 0x960)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + 0x960)" (( "(") (binary_expression "PTR_s_courses_003a88ec + 0x960" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "0x960")) () ")"))))) (; ";")) (do_statement "do {\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar12 < iVar10);" (do "do") (compound_statement "{\n        while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }\n        if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }\n        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);\n        iVar9 = *(int *)(param_1 + 0x2d0);\n        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;\n        if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }\n        iVar10 = *(int *)(iVar9 + 0x14);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }\n        iVar9 = *(int *)(iVar9 + 0x20);\n        dVar15 = *(double *)(puVar1 + 0x1410);\n        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);\n        *(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }\n        iVar10 = *(int *)(param_1 + 0x18);\n        iVar12 = iVar12 + 1;\n        *(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));\n        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n      }" ({ "{") (while_statement "while (*(int *)(param_2 + 0x28) == 8) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" (while "while") (parenthesized_expression "(*(int *)(param_2 + 0x28) == 8)" (( "(") (binary_expression "*(int *)(param_2 + 0x28) == 8" (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));\nLAB_00214780:\n          iVar12 = iVar12 + 1;\n          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;\n          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;\n        }" ({ "{") (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (identifier "bVar8") (= "=") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)bVar8 * *(double *)(puVar3 + -0x5af0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)bVar8 * *(double *)(puVar3 + -0x5af0))" (( "(") (binary_expression "(double)bVar8 * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)bVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "bVar8")) (* "*") (pointer_expression "*(double *)(puVar3 + -0x5af0)" (* "*") (cast_expression "(double *)(puVar3 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5af0)" (( "(") (binary_expression "puVar3 + -0x5af0" (identifier "puVar3") (+ "+") (number_literal "-0x5af0")) () ")"))))) () ")")))) (; ";")) (labeled_statement "LAB_00214780:\n          iVar12 = iVar12 + 1;" (statement_identifier "LAB_00214780") (: ":") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" (identifier "iVar6") (= "=") (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x18) <= iVar12)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) <= iVar12" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (identifier "iVar12")) () ")")) (goto_statement "goto LAB_002148e0;" (goto "goto") (statement_identifier "LAB_002148e0") (; ";"))) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x28) != 0x10) {\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0x10)" (( "(") (binary_expression "*(int *)(param_2 + 0x28) != 0x10" (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          dVar13 = *(double *)(puVar3 + -0x5af0);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          puVar5 = PTR_ReadBlobByte_003a97f0;\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);\n          bVar8 = (*(code *)puVar5)(param_1);\n          iVar9 = *(int *)(param_2 + 0x28);\n          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);\n          if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }\n          goto LAB_00214780;\n        }" ({ "{") (expression_statement "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (assignment_expression "bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (identifier "bVar8") (= "=") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" (identifier "puVar5") (= "=") (identifier "PTR_ReadBlobByte_003a97f0")) (; ";")) (expression_statement "dVar13 = *(double *)(puVar3 + -0x5af0);" (assignment_expression "dVar13 = *(double *)(puVar3 + -0x5af0)" (identifier "dVar13") (= "=") (pointer_expression "*(double *)(puVar3 + -0x5af0)" (* "*") (cast_expression "(double *)(puVar3 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5af0)" (( "(") (binary_expression "puVar3 + -0x5af0" (identifier "puVar3") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)bVar8 * dVar13)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)bVar8 * dVar13)" (( "(") (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "bVar8")) (* "*") (identifier "dVar13")) () ")")))) (; ";")) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" (identifier "bVar8") (= "=") (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" (( "(") (pointer_expression "*(code *)puVar5" (* "*") (cast_expression "(code *)puVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar5 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar5 = PTR_ReadBlobByte_003a97f0" (identifier "puVar5") (= "=") (identifier "PTR_ReadBlobByte_003a97f0")) (; ";")) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)bVar8 * dVar13)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)bVar8 * dVar13)" (( "(") (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "bVar8")) (* "*") (identifier "dVar13")) () ")")))) (; ";")) (expression_statement "bVar8 = (*(code *)puVar5)(param_1);" (assignment_expression "bVar8 = (*(code *)puVar5)(param_1)" (identifier "bVar8") (= "=") (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" (( "(") (pointer_expression "*(code *)puVar5" (* "*") (cast_expression "(code *)puVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(param_2 + 0x28);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x28)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13);" (assignment_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =\n               (float)((double)bVar8 * dVar13)" (pointer_expression "*(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)bVar8 * dVar13)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)bVar8 * dVar13)" (( "(") (binary_expression "(double)bVar8 * dVar13" (cast_expression "(double)bVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "bVar8")) (* "*") (identifier "dVar13")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0x20) {\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" (if "if") (parenthesized_expression "(iVar9 == 0x20)" (( "(") (binary_expression "iVar9 == 0x20" (identifier "iVar9") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);\n          }" ({ "{") (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00214780;" (goto "goto") (statement_identifier "LAB_00214780") (; ";")) (} "}"))) (expression_statement "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);" (assignment_expression "uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_ReadBlobShort_003a8d80)(param_1)" (parenthesized_expression "(*(code *)PTR_ReadBlobShort_003a8d80)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobShort_003a8d80" (* "*") (cast_expression "(code *)PTR_ReadBlobShort_003a8d80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobShort_003a8d80"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x2d0)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;" (assignment_expression "dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" (identifier "dVar13") (= "=") (binary_expression "((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18" (parenthesized_expression "((double)((uVar7 << 5) >> 0x10) / dVar19)" (( "(") (binary_expression "(double)((uVar7 << 5) >> 0x10) / dVar19" (cast_expression "(double)((uVar7 << 5) >> 0x10)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((uVar7 << 5) >> 0x10)" (( "(") (binary_expression "(uVar7 << 5) >> 0x10" (parenthesized_expression "(uVar7 << 5)" (( "(") (binary_expression "uVar7 << 5" (identifier "uVar7") (<< "<<") (number_literal "5")) () ")")) (>> ">>") (number_literal "0x10")) () ")"))) (/ "/") (identifier "dVar19")) () ")")) (* "*") (identifier "dVar18"))) (; ";")) (if_statement "if (dVar16 <= dVar13) {\n          dVar13 = dVar13 - dVar16;\n        }" (if "if") (parenthesized_expression "(dVar16 <= dVar13)" (( "(") (binary_expression "dVar16 <= dVar13" (identifier "dVar16") (<= "<=") (identifier "dVar13")) () ")")) (compound_statement "{\n          dVar13 = dVar13 - dVar16;\n        }" ({ "{") (expression_statement "dVar13 = dVar13 - dVar16;" (assignment_expression "dVar13 = dVar13 - dVar16" (identifier "dVar13") (= "=") (binary_expression "dVar13 - dVar16" (identifier "dVar13") (- "-") (identifier "dVar16"))) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x14)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" (identifier "dVar15") (= "=") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" (identifier "dVar14") (= "=") (binary_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)((uVar7 << 0x15) >> 0x1a) / dVar17)" (( "(") (binary_expression "(double)((uVar7 << 0x15) >> 0x1a) / dVar17" (cast_expression "(double)((uVar7 << 0x15) >> 0x1a)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((uVar7 << 0x15) >> 0x1a)" (( "(") (binary_expression "(uVar7 << 0x15) >> 0x1a" (parenthesized_expression "(uVar7 << 0x15)" (( "(") (binary_expression "uVar7 << 0x15" (identifier "uVar7") (<< "<<") (number_literal "0x15")) () ")")) (>> ">>") (number_literal "0x1a")) () ")"))) (/ "/") (identifier "dVar17")) () ")")) (* "*") (pointer_expression "*(double *)(puVar2 + -0x5ae8)" (* "*") (cast_expression "(double *)(puVar2 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x5ae8)" (( "(") (binary_expression "puVar2 + -0x5ae8" (identifier "puVar2") (+ "+") (number_literal "-0x5ae8")) () ")")))))) (; ";")) (expression_statement "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar9 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar9 + 8) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar9 + 8) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar9 + 8) * 4" (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((int)dVar13 & 0xff)" (( "(") (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar13")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (pointer_expression "*(double *)(puVar3 + -0x5af0)" (* "*") (cast_expression "(double *)(puVar3 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5af0)" (( "(") (binary_expression "puVar3 + -0x5af0" (identifier "puVar3") (+ "+") (number_literal "-0x5af0")) () ")"))))) () ")")))) (; ";")) (if_statement "if (dVar15 <= dVar14) {\n          dVar14 = dVar14 - dVar15;\n        }" (if "if") (parenthesized_expression "(dVar15 <= dVar14)" (( "(") (binary_expression "dVar15 <= dVar14" (identifier "dVar15") (<= "<=") (identifier "dVar14")) () ")")) (compound_statement "{\n          dVar14 = dVar14 - dVar15;\n        }" ({ "{") (expression_statement "dVar14 = dVar14 - dVar15;" (assignment_expression "dVar14 = dVar14 - dVar15" (identifier "dVar14") (= "=") (binary_expression "dVar14 - dVar15" (identifier "dVar14") (- "-") (identifier "dVar15"))) (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(iVar9 + 0x20);" (assignment_expression "iVar9 = *(int *)(iVar9 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar9 + 0x20)" (* "*") (cast_expression "(int *)(iVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x20)" (( "(") (binary_expression "iVar9 + 0x20" (identifier "iVar9") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "dVar15 = *(double *)(puVar1 + 0x1410);" (assignment_expression "dVar15 = *(double *)(puVar1 + 0x1410)" (identifier "dVar15") (= "=") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8);" (assignment_expression "dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" (identifier "dVar13") (= "=") (binary_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *\n                 *(double *)(puVar2 + -0x5ae8)" (parenthesized_expression "((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8))" (( "(") (binary_expression "(double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)" (cast_expression "(double)(uVar7 & 0x1f)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(uVar7 & 0x1f)" (( "(") (binary_expression "uVar7 & 0x1f" (identifier "uVar7") (& "&") (number_literal "0x1f")) () ")"))) (/ "/") (pointer_expression "*(double *)(puVar4 + -0x62d8)" (* "*") (cast_expression "(double *)(puVar4 + -0x62d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x62d8)" (( "(") (binary_expression "puVar4 + -0x62d8" (identifier "puVar4") (+ "+") (number_literal "-0x62d8")) () ")"))))) () ")")) (* "*") (pointer_expression "*(double *)(puVar2 + -0x5ae8)" (* "*") (cast_expression "(double *)(puVar2 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x5ae8)" (( "(") (binary_expression "puVar2 + -0x5ae8" (identifier "puVar2") (+ "+") (number_literal "-0x5ae8")) () ")")))))) (; ";")) (expression_statement "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar10 * 4) =\n             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar10 * 4)" (* "*") (cast_expression "(float *)(iVar6 + iVar10 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar10 * 4)" (( "(") (binary_expression "iVar6 + iVar10 * 4" (identifier "iVar6") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (binary_expression "(double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar14 & 0xff)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((int)dVar14 & 0xff)" (( "(") (binary_expression "(int)dVar14 & 0xff" (cast_expression "(int)dVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar14")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (pointer_expression "*(double *)(puVar3 + -0x5af0)" (* "*") (cast_expression "(double *)(puVar3 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5af0)" (( "(") (binary_expression "puVar3 + -0x5af0" (identifier "puVar3") (+ "+") (number_literal "-0x5af0")) () ")"))))) () ")")))) (; ";")) (if_statement "if (dVar15 <= dVar13) {\n          dVar13 = dVar13 - dVar15;\n        }" (if "if") (parenthesized_expression "(dVar15 <= dVar13)" (( "(") (binary_expression "dVar15 <= dVar13" (identifier "dVar15") (<= "<=") (identifier "dVar13")) () ")")) (compound_statement "{\n          dVar13 = dVar13 - dVar15;\n        }" ({ "{") (expression_statement "dVar13 = dVar13 - dVar15;" (assignment_expression "dVar13 = dVar13 - dVar15" (identifier "dVar13") (= "=") (binary_expression "dVar13 - dVar15" (identifier "dVar13") (- "-") (identifier "dVar15"))) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x18)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));" (assignment_expression "*(float *)(iVar6 + iVar9 * 4) =\n             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (pointer_expression "*(float *)(iVar6 + iVar9 * 4)" (* "*") (cast_expression "(float *)(iVar6 + iVar9 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar9 * 4)" (( "(") (binary_expression "iVar6 + iVar9 * 4" (identifier "iVar6") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0))" (( "(") (binary_expression "(double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0)" (cast_expression "(double)((int)dVar13 & 0xff)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((int)dVar13 & 0xff)" (( "(") (binary_expression "(int)dVar13 & 0xff" (cast_expression "(int)dVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar13")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (pointer_expression "*(double *)(puVar3 + -0x5af0)" (* "*") (cast_expression "(double *)(puVar3 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5af0)" (( "(") (binary_expression "puVar3 + -0x5af0" (identifier "puVar3") (+ "+") (number_literal "-0x5af0")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4" (identifier "iVar6") (= "=") (binary_expression "iVar6 + *(int *)(param_1 + 0x2c0) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 < iVar10)" (( "(") (binary_expression "iVar12 < iVar10" (identifier "iVar12") (< "<") (identifier "iVar10")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_002148e0:\n    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" (statement_identifier "LAB_002148e0") (: ":") (expression_statement "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);" (assignment_expression "iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SyncAuthenticPixels_003a91e4)" (( "(") (pointer_expression "*(code *)PTR_SyncAuthenticPixels_003a91e4" (* "*") (cast_expression "(code *)PTR_SyncAuthenticPixels_003a91e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncAuthenticPixels_003a91e4"))) () ")")) (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")")))) (; ";"))) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_EOFBlob_003a9748)(param_1)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" (( "(") (pointer_expression "*(code *)PTR_EOFBlob_003a9748" (* "*") (cast_expression "(code *)PTR_EOFBlob_003a9748" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_EOFBlob_003a9748"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) <= iVar11) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) <= iVar11)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) <= iVar11" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (identifier "iVar11")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

type_1 function_1(type_2 *image,type_3 *dds_info,type_4 *exception)

{
  type_5 *var_13;
  type_5 *var_15;
  type_5 *var_6;
  type_5 *var_18;
  type_5 *puVar5;
  int var_4;
  type_6 bVar9;
  size_t var_5;
  type_7 var_9;
  type_8 *pPVar10;
  int var_20;
  int var_19;
  int var_21;
  int var_7;
  double var_8;
  double var_17;
  double var_16;
  double var_12;
  double var_14;
  double var_11;
  double var_10;
  
  var_18 = var_1;
  var_15 = var_2;
  var_13 = var_3;
  if ((int)image->rows < 1) {
    return MagickTrue;
  }
  var_21 = 0;
  var_10 = *(double *)(var_1 + -0x62d8);
  var_11 = *(double *)(var_2 + -0x5ae8);
  var_12 = *(double *)(var_3 + 0x1410);
  do {
    var_4 = (*(type_9 *)PTR_QueueAuthenticPixels_003a8f24)(image,0,var_21,image->columns,1,exception);
    var_6 = var_2;
    if (var_4 == 0) {
      return MagickFalse;
    }
    if (0 < (int)image->columns) {
      var_7 = 0;
      var_14 = *(double *)(var_1 + 0x960);
      do {
        while (var_5 = (dds_info->pixelformat).rgb_bitcount, var_5 == 8) {
          bVar9 = (*(type_9 *)PTR_ReadBlobByte_003a97f0)(image);
          *(float *)(var_4 + image->channel_map->offset * 4) =
               (float)((double)bVar9 * *(double *)(var_6 + -0x5af0));
LAB_00214780:
          var_7 = var_7 + 1;
          var_4 = var_4 + image->number_channels * 4;
          if ((int)image->columns <= var_7) goto LAB_002148e0;
        }
        if (var_5 != 0x10) {
          bVar9 = (*(type_9 *)PTR_ReadBlobByte_003a97f0)(image);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          var_8 = *(double *)(var_6 + -0x5af0);
          *(float *)(var_4 + image->channel_map[2].offset * 4) = (float)((double)bVar9 * var_8);
          bVar9 = (*(type_9 *)puVar5)(image);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          *(float *)(var_4 + image->channel_map[1].offset * 4) = (float)((double)bVar9 * var_8);
          bVar9 = (*(type_9 *)puVar5)(image);
          var_5 = (dds_info->pixelformat).rgb_bitcount;
          *(float *)(var_4 + image->channel_map->offset * 4) = (float)((double)bVar9 * var_8);
          if (var_5 == 0x20) {
            (*(type_9 *)PTR_ReadBlobByte_003a97f0)(image);
          }
          goto LAB_00214780;
        }
        var_9 = (*(type_9 *)PTR_ReadBlobShort_003a8d80)(image);
        pPVar10 = image->channel_map;
        var_8 = ((double)((var_9 << 5) >> 0x10) / var_10) * var_11;
        if (var_12 <= var_8) {
          var_8 = var_8 - var_12;
        }
        var_19 = pPVar10[1].offset;
        var_16 = *(double *)(var_13 + 0x1410);
        var_17 = ((double)((var_9 << 0x15) >> 0x1a) / var_14) * *(double *)(var_15 + -0x5ae8);
        *(float *)(var_4 + pPVar10->offset * 4) =
             (float)((double)((int)var_8 & 0xff) * *(double *)(var_6 + -0x5af0));
        if (var_16 <= var_17) {
          var_17 = var_17 - var_16;
        }
        var_20 = pPVar10[2].offset;
        var_16 = *(double *)(var_13 + 0x1410);
        var_8 = ((double)(var_9 & 0x1f) / *(double *)(var_18 + -0x62d8)) *
                 *(double *)(var_15 + -0x5ae8);
        *(float *)(var_4 + var_19 * 4) =
             (float)((double)((int)var_17 & 0xff) * *(double *)(var_6 + -0x5af0));
        if (var_16 <= var_8) {
          var_8 = var_8 - var_16;
        }
        var_5 = image->columns;
        var_7 = var_7 + 1;
        *(float *)(var_4 + var_20 * 4) =
             (float)((double)((int)var_8 & 0xff) * *(double *)(var_6 + -0x5af0));
        var_4 = var_4 + image->number_channels * 4;
      } while (var_7 < (int)var_5);
    }
LAB_002148e0:
    var_4 = (*(type_9 *)PTR_SyncAuthenticPixels_003a91e4)(image,exception);
    if (var_4 == 0) {
      return MagickFalse;
    }
    var_4 = (*(type_9 *)PTR_EOFBlob_003a9748)(image);
    if (var_4 != 0) {
      return MagickFalse;
    }
    var_21 = var_21 + 1;
    if ((int)image->rows <= var_21) {
      return MagickTrue;
    }
  } while( true );
}


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

undefined4 MASKED(int param_1,int param_2,undefined4 param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  int iVar6;
  byte bVar8;
  uint uVar7;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  double dVar13;
  double dVar14;
  double dVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  double dVar19;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar2 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  puVar1 = PTR_LAB_003a88e0;
  if (*(int *)(param_1 + 0x1c) < 1) {
    return 1;
  }
  iVar11 = 0;
  dVar19 = *(double *)(PTR_s_courses_003a88ec + -0x62d8);
  dVar18 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
  dVar16 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
  do {
    iVar6 = (*(code *)PTR_QueueAuthenticPixels_003a8f24)
                      (param_1,0,iVar11,*(undefined4 *)(param_1 + 0x18),1,param_3);
    puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    if (iVar6 == 0) {
      return 0;
    }
    if (0 < *(int *)(param_1 + 0x18)) {
      iVar12 = 0;
      dVar17 = *(double *)(PTR_s_courses_003a88ec + 0x960);
      do {
        while (*(int *)(param_2 + 0x28) == 8) {
          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =
               (float)((double)bVar8 * *(double *)(puVar3 + -0x5af0));
LAB_00214780:
          iVar12 = iVar12 + 1;
          iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;
          if (*(int *)(param_1 + 0x18) <= iVar12) goto LAB_002148e0;
        }
        if (*(int *)(param_2 + 0x28) != 0x10) {
          bVar8 = (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          dVar13 = *(double *)(puVar3 + -0x5af0);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) =
               (float)((double)bVar8 * dVar13);
          bVar8 = (*(code *)puVar5)(param_1);
          puVar5 = PTR_ReadBlobByte_003a97f0;
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) =
               (float)((double)bVar8 * dVar13);
          bVar8 = (*(code *)puVar5)(param_1);
          iVar9 = *(int *)(param_2 + 0x28);
          *(float *)(iVar6 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) =
               (float)((double)bVar8 * dVar13);
          if (iVar9 == 0x20) {
            (*(code *)PTR_ReadBlobByte_003a97f0)(param_1);
          }
          goto LAB_00214780;
        }
        uVar7 = (*(code *)PTR_ReadBlobShort_003a8d80)(param_1);
        iVar9 = *(int *)(param_1 + 0x2d0);
        dVar13 = ((double)((uVar7 << 5) >> 0x10) / dVar19) * dVar18;
        if (dVar16 <= dVar13) {
          dVar13 = dVar13 - dVar16;
        }
        iVar10 = *(int *)(iVar9 + 0x14);
        dVar15 = *(double *)(puVar1 + 0x1410);
        dVar14 = ((double)((uVar7 << 0x15) >> 0x1a) / dVar17) * *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + *(int *)(iVar9 + 8) * 4) =
             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar15 <= dVar14) {
          dVar14 = dVar14 - dVar15;
        }
        iVar9 = *(int *)(iVar9 + 0x20);
        dVar15 = *(double *)(puVar1 + 0x1410);
        dVar13 = ((double)(uVar7 & 0x1f) / *(double *)(puVar4 + -0x62d8)) *
                 *(double *)(puVar2 + -0x5ae8);
        *(float *)(iVar6 + iVar10 * 4) =
             (float)((double)((int)dVar14 & 0xff) * *(double *)(puVar3 + -0x5af0));
        if (dVar15 <= dVar13) {
          dVar13 = dVar13 - dVar15;
        }
        iVar10 = *(int *)(param_1 + 0x18);
        iVar12 = iVar12 + 1;
        *(float *)(iVar6 + iVar9 * 4) =
             (float)((double)((int)dVar13 & 0xff) * *(double *)(puVar3 + -0x5af0));
        iVar6 = iVar6 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar12 < iVar10);
    }
LAB_002148e0:
    iVar6 = (*(code *)PTR_SyncAuthenticPixels_003a91e4)(param_1,param_3);
    if (iVar6 == 0) {
      return 0;
    }
    iVar6 = (*(code *)PTR_EOFBlob_003a9748)(param_1);
    if (iVar6 != 0) {
      return 0;
    }
    iVar11 = iVar11 + 1;
    if (*(int *)(param_1 + 0x1c) <= iVar11) {
      return 1;
    }
  } while( true );
}

