
/* WARNING: Removing unreachable block (ram,0x002175bc) */
/* WARNING: Removing unreachable block (ram,0x002175c4) */
/* WARNING: Removing unreachable block (ram,0x002178a0) */
/* WARNING: Removing unreachable block (ram,0x002175e8) */
/* WARNING: Removing unreachable block (ram,0x002175f4) */
/* WARNING: Removing unreachable block (ram,0x0021760c) */
/* WARNING: Removing unreachable block (ram,0x00217618) */
/* WARNING: Removing unreachable block (ram,0x00217620) */
/* 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 */

void WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,
                MagickBooleanType weightByAlpha,ExceptionInfo *exception)

{
  byte bVar1;
  bool bVar2;
  DDSVector3 start_00;
  DDSVector3 start_01;
  DDSVector3 axis_00;
  DDSVector3 end_00;
  DDSVector3 end_01;
  undefined *puVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  ssize_t *psVar7;
  float *pfVar8;
  DDSVector3 *pDVar9;
  DDSVector4 *pDVar10;
  undefined *puVar11;
  size_t sVar12;
  uchar *puVar13;
  uchar *puVar14;
  undefined4 extraout_v1;
  uint uVar15;
  bool bVar16;
  PixelChannelMap *pPVar17;
  bool bVar18;
  int iVar19;
  bool bVar20;
  int *piVar21;
  byte *pbVar22;
  uint *puVar23;
  byte *pbVar24;
  int iVar25;
  int *piVar26;
  uchar *unaff_s0;
  int *unaff_s1;
  int *unaff_s2;
  uint uVar27;
  uchar *unaff_s3;
  DDSVector4 *unaff_s4;
  DDSVector4 *pDVar28;
  float *pfVar29;
  size_t unaff_s6;
  uint uVar30;
  byte *pbVar31;
  code *pcVar32;
  Image *unaff_s8;
  int iVar33;
  float fVar35;
  float fVar36;
  double dVar34;
  float fVar37;
  float fVar38;
  DDSVector4 *pDVar39;
  float fVar40;
  DDSVector4 *pDVar41;
  float fVar42;
  DDSVector4 *pDVar43;
  float fVar44;
  double dVar45;
  float fVar46;
  undefined4 uVar47;
  double dVar48;
  undefined8 uVar49;
  double dVar50;
  double dVar51;
  float fVar52;
  float fVar53;
  float fVar54;
  float fVar55;
  float fVar56;
  float fVar57;
  double dVar58;
  double dVar59;
  uint uVar60;
  int in_stack_fffffae0;
  float in_stack_fffffae4;
  undefined *local_50c;
  double local_508;
  double local_500;
  double local_4f8;
  double local_4f0;
  undefined *local_4e8;
  int local_4e4;
  uint local_4dc;
  uint local_4d0;
  uint local_4cc;
  uint local_4c8;
  DDSVector3 end;
  DDSVector3 start;
  DDSVector3 axis;
  undefined4 local_458;
  undefined4 local_454;
  undefined4 local_450;
  undefined4 local_44c;
  DDSVector4 grid;
  DDSVector4 gridrcp;
  DDSVector4 half;
  DDSVector4 onethird_onethird2;
  DDSVector4 two;
  DDSVector4 twonineths;
  DDSVector4 twothirds_twothirds2;
  DDSVector4 xSumwSum;
  DDSVector3 end_1;
  ssize_t alphas [16];
  ssize_t map [16];
  DDSVector4 points [16];
  DDSVector3 codes [4];
  uchar indices [16];
  uchar unordered [16];
  uchar closest [16];
  byte abStack_cc [112];
  int local_5c;
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
  uVar5 = image->rows;
  pDVar28 = unaff_s4;
  if ((int)uVar5 < 1) goto LAB_00216b50;
  local_4d0 = 0;
  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
LAB_00216150:
  do {
    local_508._0_4_ = image->columns;
    local_4c8 = local_4d0 + 4;
    uVar30 = 0;
    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;
    while( true ) {
      local_4cc = uVar30 + 4;
      if (local_4cc < local_508._0_4_) {
        local_508._0_4_ = 4;
      }
      else {
        local_508._0_4_ = local_508._0_4_ - uVar30;
      }
      if (local_4c8 < uVar5) {
        local_4e4 = 4;
      }
      else {
        local_4e4 = uVar5 - local_4d0;
      }
      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)
                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);
      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
      puVar11 = PTR_LAB_003a88e0;
      unaff_s6 = compression;
      unaff_s8 = image;
      if (iVar6 == 0) break;
      unaff_s2 = map;
      unaff_s4 = points;
      psVar7 = alphas;
      unaff_s1 = unaff_s2;
      do {
        *unaff_s1 = -1;
        unaff_s1 = unaff_s1 + 1;
        *psVar7 = -1;
        psVar7 = psVar7 + 1;
      } while (unaff_s4 != (DDSVector4 *)unaff_s1);
      pDVar28 = unaff_s4;
      if (local_4e4 < 1) {
        if (compression != 0x35545844) {
          unaff_s0 = (uchar *)0x0;
          start.z = 0.0;
          start.y = 0.0;
          start.x = 0.0;
          end.z = 0.0;
          end.y = 0.0;
          end.x = 0.0;
          unaff_s3 = (uchar *)0x0;
          goto LAB_0021703c;
        }
        local_508._0_4_ = 0;
        uVar30 = 0;
        local_4dc = 5;
        uVar5 = 0xff;
        unaff_s0 = (uchar *)0x0;
LAB_002176f8:
        pbVar24 = unordered;
        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);
        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);
        uVar27 = uVar30;
        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {
          uVar5 = uVar27;
          uVar30 = uVar5 + 7;
          if (0xff < uVar30) {
            uVar30 = 0xff;
          }
          if (uVar30 - uVar5 < 7) {
            uVar5 = uVar30 - 7;
          }
        }
        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);
        if (uVar27 < sVar12) {
          pbVar22 = closest;
          pbVar31 = pbVar24;
LAB_002177b4:
          do {
            bVar1 = *pbVar22;
            local_508._0_4_ = uVar30;
            local_4dc = uVar5;
            if (bVar1 == 0) {
              *pbVar31 = 1;
            }
            else {
              if (bVar1 != 1) {
                pbVar22 = pbVar22 + 1;
                *pbVar31 = 9 - bVar1;
                pbVar31 = pbVar31 + 1;
                if (abStack_cc == pbVar22) break;
                goto LAB_002177b4;
              }
              *pbVar31 = 0;
            }
            pbVar22 = pbVar22 + 1;
            pbVar31 = pbVar31 + 1;
          } while (abStack_cc != pbVar22);
        }
        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);
        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);
        do {
          uVar5 = 0;
          uVar30 = 0;
          pbVar22 = pbVar24;
          do {
            bVar1 = *pbVar22;
            pbVar22 = pbVar22 + 1;
            uVar27 = uVar5 & 0x1f;
            uVar5 = uVar5 + 3;
            uVar30 = uVar30 | (uint)bVar1 << uVar27;
          } while (uVar5 != 0x18);
          pbVar24 = pbVar24 + 8;
          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);
        } while (closest != pbVar24);
      }
      else {
        uVar30 = 0;
        unaff_s0 = (uchar *)0x0;
        iVar33 = 0;
        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        uVar5 = 0xff;
        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
        uVar27 = 0xff;
        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
        local_4dc = 0;
        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);
        piVar26 = unaff_s2;
        do {
          if (0 < (int)local_508._0_4_) {
            dVar45 = *(double *)(puVar11 + 0x1400);
            dVar51 = *(double *)(local_50c + -0x5af0);
            dVar48 = *(double *)(puVar11 + 0x1410);
            iVar25 = image->number_channels * 4;
            pPVar17 = image->channel_map;
            dVar50 = *(double *)(local_4e8 + -0x5ae8);
            puVar23 = (uint *)(alphas + iVar33 * 4);
            iVar19 = iVar6;
            piVar21 = piVar26;
            do {
              if (compression == 0x35545844) {
                if (image->channel_map[4].traits == UndefinedPixelTrait) {
LAB_00216c58:
                  uVar15 = 0xff;
                  uVar30 = 0xff;
                }
                else {
                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);
                  if (fVar52 <= 0.0) {
                    uVar15 = 0;
                    uVar5 = 0;
                  }
                  else {
                    dVar34 = (double)fVar52 / dVar51;
                    if (dVar50 <= dVar34) goto LAB_00216c58;
                    dVar34 = dVar34 + dVar45;
                    if (dVar48 <= dVar34) {
                      dVar34 = dVar34 - dVar48;
                    }
                    uVar15 = (int)dVar34 & 0xff;
                    if (uVar15 < uVar5) {
                      uVar5 = uVar15;
                    }
                    if (uVar30 < uVar15) {
                      uVar30 = uVar15;
                    }
                    if (uVar15 != 0) {
                      if (uVar15 < uVar27) {
                        uVar27 = uVar15;
                      }
                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {
                        local_4dc = uVar15;
                      }
                    }
                  }
                }
              }
              else {
                uVar15 = 0xff;
              }
              *puVar23 = uVar15;
              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);
              fVar52 = 0.0;
              if ((0.0 < fVar36) &&
                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {
                dVar34 = dVar34 + dVar45;
                if (dVar59 <= dVar34) {
                  dVar34 = dVar34 - dVar59;
                }
                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;
              }
              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);
              fVar44 = 0.0;
              if (0.0 < fVar36) {
                dVar34 = (double)fVar36 / local_500;
                fVar44 = *(float *)(puVar3 + -0x5a8c);
                if (dVar34 < local_4f8) {
                  dVar34 = dVar34 + dVar58;
                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {
                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);
                  }
                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);
              fVar56 = 0.0;
              if (0.0 < fVar36) {
                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);
                fVar56 = *(float *)(puVar3 + -0x5a8c);
                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {
                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);
                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {
                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);
                  }
                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar36 = *(float *)(puVar3 + -0x5a8c);
              if (weightByAlpha != MagickFalse) {
                fVar36 = (float)(uVar15 + 1) * fVar55;
              }
              iVar19 = iVar19 + iVar25;
              if (0 < (int)unaff_s0) {
                puVar13 = (uchar *)0x0;
                pDVar39 = unaff_s4;
                do {
                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))
                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {
                    *piVar21 = (int)puVar13;
                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;
                    goto LAB_002164d0;
                  }
                  puVar13 = puVar13 + 1;
                  pDVar39 = pDVar39 + 1;
                } while (puVar13 != unaff_s0);
              }
              *piVar21 = (int)unaff_s0;
              points[(int)unaff_s0].x = fVar52;
              points[(int)unaff_s0].y = fVar44;
              points[(int)unaff_s0].z = fVar56;
              points[(int)unaff_s0].w = fVar36;
              unaff_s0 = unaff_s0 + 1;
LAB_002164d0:
              piVar21 = piVar21 + 1;
              puVar23 = puVar23 + 1;
            } while (piVar26 + local_508._0_4_ != piVar21);
            iVar6 = iVar25 * local_508._0_4_ + iVar6;
          }
          iVar33 = iVar33 + 1;
          piVar26 = piVar26 + 4;
        } while (iVar33 != local_4e4);
        if (0 < (int)unaff_s0) {
          uVar49 = 0;
          pfVar29 = &points[0].w;
          pfVar8 = pfVar29 + (int)unaff_s0 * 4;
          do {
            fVar35 = SQRT(*pfVar29);
            if (*pfVar29 < (float)uVar49) {
              (*(code *)PTR_sqrtf_003a9800)();
            }
            *pfVar29 = fVar35;
            pfVar29 = pfVar29 + 4;
          } while (pfVar8 != pfVar29);
        }
        if (compression == 0x35545844) {
          local_508._0_4_ = local_4dc;
          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {
            local_4dc = local_508._0_4_ + 5;
            if (0xff < local_4dc) {
              local_4dc = 0xff;
            }
            if (local_4dc - local_508._0_4_ < 5) {
              local_508._0_4_ = local_4dc - 5;
            }
          }
          goto LAB_002176f8;
        }
      }
      unaff_s3 = unaff_s0;
      if (unaff_s0 != (uchar *)0x1) {
        start.z = 0.0;
        start.y = 0.0;
        start.x = 0.0;
        end.z = 0.0;
        end.y = 0.0;
        end.x = 0.0;
        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;
        fVar55 = 0.0;
        fVar57 = 0.0;
        fVar52 = 0.0;
        fVar35 = 0.0;
        pDVar39 = unaff_s4;
        do {
          fVar36 = pDVar39->w;
          pDVar43 = pDVar39 + 1;
          fVar35 = fVar35 + fVar36;
          fVar52 = fVar36 * pDVar39->x + fVar52;
          fVar57 = fVar36 * pDVar39->y + fVar57;
          fVar55 = fVar36 * pDVar39->z + fVar55;
          pDVar39 = pDVar43;
        } while (unaff_s4 + (int)unaff_s0 != pDVar43);
        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {
          fVar52 = fVar52 / fVar35;
          fVar57 = fVar57 / fVar35;
          fVar55 = fVar55 / fVar35;
        }
        fVar54 = 0.0;
        fVar53 = 0.0;
        fVar56 = 0.0;
        fVar35 = 0.0;
        fVar44 = 0.0;
        fVar36 = 0.0;
        pDVar39 = unaff_s4;
        do {
          pDVar43 = pDVar39 + 1;
          fVar40 = pDVar39->x - fVar52;
          fVar37 = pDVar39->w;
          fVar42 = pDVar39->y - fVar57;
          fVar46 = pDVar39->z - fVar55;
          fVar38 = fVar46 * fVar37;
          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;
          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;
          fVar35 = fVar40 * fVar38 + fVar35;
          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;
          fVar53 = fVar42 * fVar38 + fVar53;
          fVar54 = fVar46 * fVar38 + fVar54;
          pDVar39 = pDVar43;
          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;
        } while( true );
      }
      iVar6 = 0;
      uVar5 = 0xffffffff;
      iVar33 = 0;
      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);
      uVar15 = (uint)(points[0].y * fVar57 + fVar55);
      uVar27 = (uint)(points[0].z * fVar57 + fVar55);
      uVar30 = (uint)(points[0].x * fVar57 + fVar55);
      if (0xff < uVar15) {
        uVar15 = 0xff;
      }
      if (0xff < uVar27) {
        uVar27 = 0xff;
      }
      if (0xff < uVar30) {
        uVar30 = 0xff;
      }
      indices[2] = (uchar)uVar27;
      indices[1] = (uchar)uVar15;
      indices[0] = (uchar)uVar30;
      while( true ) {
        iVar19 = iVar33 * 3;
        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);
        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);
        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);
        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +
                 (uint)pbVar24[2] * (uint)pbVar24[2];
        if (uVar60 <= uVar5) {
          xSumwSum.x = (float)*pbVar24 / fVar35;
          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);
          xSumwSum.z = (float)*pbVar22 / fVar35;
          end_1.x = (float)pbVar24[1] / fVar35;
          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);
          end_1.z = (float)pbVar22[1] / fVar35;
          iVar6 = iVar33 * 2;
          uVar5 = uVar60;
        }
        if (iVar33 == 1) break;
        iVar33 = 1;
      }
      puVar13 = unordered;
      do {
        *puVar13 = (uchar)iVar6;
        puVar13 = puVar13 + 1;
        puVar14 = closest;
      } while (closest != puVar13);
      do {
        while (piVar26 = unaff_s2, *piVar26 == -1) {
          *puVar14 = '\x03';
          puVar14 = puVar14 + 1;
          unaff_s2 = piVar26 + 1;
          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;
        }
        *puVar14 = unordered[*piVar26];
        puVar14 = puVar14 + 1;
        unaff_s2 = piVar26 + 1;
      } while (unaff_s1 != piVar26 + 1);
LAB_00216f04:
      unaff_s2 = piVar26 + 1;
      start_01.x = end_1.x;
      start_01.y = end_1.y;
      start_01.z = end_1.z;
      end_01.x = (float)closest;
      end_01.y = (float)in_stack_fffffae0;
      end_01.z = in_stack_fffffae4;
      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);
      while( true ) {
        local_508._0_4_ = image->columns;
        uVar5 = image->rows;
        uVar30 = local_4cc;
        if ((int)local_4cc < (int)local_508._0_4_) break;
LAB_00216b38:
        local_4d0 = local_4c8;
        pDVar28 = unaff_s4;
        unaff_s6 = compression;
        unaff_s8 = image;
        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;
LAB_00216b50:
        if (local_5c == *(int *)puVar4) {
          return;
        }
        (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_0021703c:
        fVar54 = 0.0;
        compression = unaff_s6;
        image = unaff_s8;
        fVar35 = fVar54;
        fVar36 = fVar54;
        fVar44 = fVar54;
        fVar56 = fVar54;
        fVar53 = fVar54;
LAB_0021663c:
        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
        iVar6 = 8;
        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
        pDVar39 = pDVar41;
        pDVar43 = pDVar41;
        do {
          while( true ) {
            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;
            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;
            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;
            if (fVar52 < fVar57) break;
            if (fVar55 <= fVar52) goto LAB_0021668c;
LAB_00216720:
            local_508 = (double)fVar55;
            if (0.0 <= fVar55) goto LAB_002166ac;
LAB_00216730:
            local_4f0 = -local_508;
            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);
            if (dVar58 <= local_4f0) goto LAB_002166c4;
LAB_00216758:
            iVar6 = iVar6 + -1;
            fVar37 = (float)(dVar45 / dVar58);
            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);
            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);
            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);
            if (iVar6 == 0) goto LAB_00216774;
          }
          if (fVar57 < fVar55) goto LAB_00216720;
LAB_0021668c:
          fVar37 = fVar57;
          if (fVar57 <= fVar52) {
            fVar37 = fVar52;
          }
          local_508 = (double)fVar37;
          if (fVar37 < 0.0) goto LAB_00216730;
LAB_002166ac:
          dVar45 = dVar59;
          if (local_508 < dVar58) goto LAB_00216758;
LAB_002166c4:
          iVar6 = iVar6 + -1;
          fVar37 = (float)(dVar59 / local_508);
          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);
          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);
          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);
        } while (iVar6 != 0);
LAB_00216774:
        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);
        if (clusterFit == MagickFalse) {
          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;
          start.y = points[0].y;
          start.x = points[0].x;
          start.z = points[0].z;
          end.x = points[0].x;
          end.y = points[0].y;
          end.z = points[0].z;
          fVar35 = (float)pDVar41 * points[0].z +
                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;
          if ((int)unaff_s3 < 2) {
            if (points[0].x < 0.0) goto LAB_002171e0;
            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
LAB_002179a0:
            if (start.x <= fVar35) {
              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
              goto LAB_002171e8;
            }
            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
            if (0.0 <= start.y) {
              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
              goto LAB_002179c0;
            }
          }
          else {
            pDVar10 = points + 1;
            bVar2 = false;
            bVar18 = false;
            bVar20 = false;
            bVar16 = false;
            fVar55 = points[0].x;
            fVar57 = fVar35;
            fVar52 = points[0].z;
            fVar36 = points[0].y;
            fVar44 = points[0].z;
            fVar56 = points[0].x;
            fVar53 = points[0].y;
            do {
              while( true ) {
                fVar38 = pDVar10->y;
                fVar37 = pDVar10->x;
                fVar54 = pDVar10->z;
                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38
                ;
                if (fVar40 < fVar57) break;
                if (fVar35 < fVar40) {
                  bVar2 = true;
                  bVar18 = true;
                  bVar20 = true;
                  fVar55 = fVar37;
                  fVar52 = fVar54;
                  fVar36 = fVar38;
                  fVar35 = fVar40;
                }
                pDVar10 = pDVar10 + 1;
                fVar54 = fVar44;
                fVar37 = fVar56;
                fVar38 = fVar53;
                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;
              }
              pDVar10 = pDVar10 + 1;
              bVar16 = true;
              fVar57 = fVar40;
              fVar44 = fVar54;
              fVar56 = fVar37;
              fVar53 = fVar38;
            } while (pDVar28 + (int)unaff_s3 != pDVar10);
LAB_00217194:
            if (bVar16) {
              start.x = fVar37;
              start.y = fVar38;
              start.z = fVar54;
            }
            if (bVar20) {
              end.x = fVar55;
            }
            if (bVar18) {
              end.y = fVar36;
            }
            if (bVar2) {
              end.z = fVar52;
            }
            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (0.0 <= start.x) goto LAB_002179a0;
LAB_002171e0:
            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002171e8:
            uVar49 = CONCAT44(uVar47,fVar35);
            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (0.0 <= start.y) {
LAB_002179c0:
              fVar55 = start.z;
              fVar57 = start.y;
              if (start.y <= fVar35) goto LAB_002167a4;
              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002167b4;
            }
          }
          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          fVar55 = start.z;
          if (0.0 <= start.z) goto LAB_002167c4;
LAB_0021720c:
          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          if (0.0 < (float)uVar49) goto LAB_002167f4;
LAB_00217224:
          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();
          uVar49 = CONCAT44(uVar47,fVar35);
joined_r0x00216814:
          if (fVar35 <= 0.0) {
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          else {
            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
          }
          uVar49 = CONCAT44(uVar47,fVar55);
          if (0.0 < fVar55) {
            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (end.x < 0.0) goto LAB_002170a0;
LAB_00216890:
            if (*(float *)(puVar11 + -0x5a8c) < end.x) {
              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
              goto LAB_002168a8;
            }
            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));
            fVar35 = *(float *)(puVar11 + -0x5a8c);
            if (0.0 <= end.y) goto LAB_002168bc;
LAB_00217004:
            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002168d0:
            if (0.0 <= end.z) {
              fVar55 = *(float *)(puVar11 + -0x5a8c);
              goto LAB_002168e4;
            }
LAB_00216f6c:
            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
            if (0.0 < (float)uVar49) goto LAB_00216910;
LAB_00216f7c:
            unaff_s0 = PTR_UINT_003a8950;
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            fVar57 = start.x;
            fVar52 = start.y;
            fVar36 = start.z;
            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar49 = CONCAT44(uVar47,fVar35);
            if (0.0 < fVar35) goto LAB_00216938;
LAB_00216fa0:
            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);
            if (0.0 < fVar55) goto LAB_00216960;
LAB_00216fc8:
            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          else {
            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (0.0 <= end.x) goto LAB_00216890;
LAB_002170a0:
            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
LAB_002168a8:
            if (end.y < 0.0) goto LAB_00217004;
            fVar35 = *(float *)(puVar11 + -0x5a8c);
LAB_002168bc:
            if (fVar35 < end.y) {
              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002168d0;
            }
            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
            fVar55 = *(float *)(puVar11 + -0x5a8c);
            if (end.z < 0.0) goto LAB_00216f6c;
LAB_002168e4:
            if (end.z <= fVar55) {
              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;
LAB_00216910:
            unaff_s0 = PTR_UINT_003a8950;
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            fVar57 = start.x;
            fVar52 = start.y;
            fVar36 = start.z;
            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();
            uVar49 = CONCAT44(uVar47,fVar35);
            if (fVar35 <= 0.0) goto LAB_00216fa0;
LAB_00216938:
            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();
            if (fVar55 <= 0.0) goto LAB_00216fc8;
LAB_00216960:
            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);
          }
          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);
          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);
          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);
          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);
          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);
          codes[0].x = start.x;
          codes[0].y = start.y;
          codes[0].z = start.z;
          codes[1].x = end.x;
          codes[1].y = end.y;
          codes[1].z = end.z;
          codes[2].x = fVar57 * fVar56 + end.x * fVar44;
          codes[2].y = fVar52 * fVar56 + end.y * fVar44;
          codes[3].x = fVar57 * fVar44 + end.x * fVar56;
          codes[2].z = fVar36 * fVar56 + end.z * fVar44;
          codes[3].y = fVar52 * fVar44 + end.y * fVar56;
          codes[3].z = fVar36 * fVar44 + end.z * fVar56;
          if (0 < (int)unaff_s3) {
            puVar13 = closest;
            unaff_s3 = unaff_s3 + (int)puVar13;
            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);
            do {
              iVar33 = 0;
              pDVar9 = codes;
              iVar6 = 0;
              fVar55 = fVar35;
              do {
                fVar36 = pDVar28->y - pDVar9->y;
                fVar52 = pDVar28->x - pDVar9->x;
                fVar57 = pDVar28->z - pDVar9->z;
                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;
                iVar19 = iVar33;
                if (fVar55 <= fVar57) {
                  iVar19 = iVar6;
                  fVar57 = fVar55;
                }
                fVar55 = fVar57;
                iVar33 = iVar33 + 1;
                pDVar9 = pDVar9 + 1;
                iVar6 = iVar19;
              } while (iVar33 != 4);
              *puVar13 = (uchar)iVar19;
              puVar13 = puVar13 + 1;
              pDVar28 = pDVar28 + 1;
            } while (unaff_s3 != puVar13);
          }
          puVar13 = indices;
          do {
            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {
              unaff_s2 = unaff_s2 + 1;
              *puVar13 = '\x03';
              puVar13 = puVar13 + 1;
              if (unaff_s1 == unaff_s2) goto LAB_00216af4;
            }
            unaff_s2 = unaff_s2 + 1;
            *puVar13 = closest[iVar6];
            puVar13 = puVar13 + 1;
          } while (unaff_s1 != unaff_s2);
        }
        else {
          if (unaff_s0 == (uchar *)0x0) {
LAB_00216788:
            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
            end.z = 0.0;
            end.y = 0.0;
            end.x = 0.0;
            fVar55 = 0.0;
            fVar57 = 0.0;
LAB_002167a4:
            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002167b4:
            if (fVar55 < 0.0) goto LAB_0021720c;
LAB_002167c4:
            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {
              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if ((float)uVar49 <= 0.0) goto LAB_00217224;
LAB_002167f4:
            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);
            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();
            uVar49 = CONCAT44(uVar47,fVar35);
            goto joined_r0x00216814;
          }
          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
          pbVar24 = closest;
          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);
          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);
          in_stack_fffffae0 = 0;
          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);
          grid.w = 0.0;
          xSumwSum.x = 0.0;
          xSumwSum.y = 0.0;
          xSumwSum.z = 0.0;
          xSumwSum.w = 0.0;
          axis_00.x = (float)pDVar41;
          axis_00.y = (float)codes;
          axis_00.z = (float)&xSumwSum;
          local_454 = local_458;
          local_450 = local_458;
          local_44c = local_458;
          grid.z = grid.x;
          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);
          iVar6 = 0;
          unaff_s4 = (DDSVector4 *)0x0;
          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;
          do {
            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
            end_1.x = (float)unaff_s0;
            end_1.y = (float)&local_458;
            end_1.z = (float)&start;
            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);
            if (iVar6 != 0) break;
            iVar6 = 1;
            in_stack_fffffae0 = iVar6;
            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,
                                codes,&xSumwSum,pbVar24);
          } while (iVar33 != 0);
          if (0 < (int)unaff_s3) {
            pbVar22 = pbVar24 + (int)unaff_s3;
            do {
              bVar1 = *pbVar24;
              pbVar24 = pbVar24 + 1;
              unordered[bVar1] = '\x01';
            } while (pbVar22 != pbVar24);
          }
          puVar13 = indices;
          do {
            while (piVar26 = unaff_s2, *piVar26 == -1) {
              *puVar13 = '\x03';
              puVar13 = puVar13 + 1;
              unaff_s2 = piVar26 + 1;
              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;
            }
            *puVar13 = unordered[*piVar26];
            puVar13 = puVar13 + 1;
            unaff_s2 = piVar26 + 1;
          } while (unaff_s1 != piVar26 + 1);
LAB_002176b0:
          unaff_s2 = piVar26 + 1;
        }
LAB_00216af4:
        start_00.x = end.x;
        start_00.y = end.y;
        start_00.z = end.z;
        end_00.x = (float)indices;
        end_00.y = (float)in_stack_fffffae0;
        end_00.z = in_stack_fffffae4;
        WriteIndices(image,start_00,end_00,(uchar *)start.x);
      }
    }
    local_4d0 = local_4c8;
    uVar5 = image->rows;
    pDVar28 = unaff_s4;
    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;
  } while( true );
}



void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)

{
  byte bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  uint *puVar7;
  float *pfVar8;
  undefined *puVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 extraout_v1;
  uint uVar12;
  bool bVar13;
  int iVar14;
  bool bVar15;
  int iVar16;
  bool bVar17;
  float *pfVar18;
  int iVar19;
  byte *unaff_s0;
  float *unaff_s1;
  float *unaff_s2;
  uint uVar20;
  byte *unaff_s3;
  float *unaff_s4;
  float *pfVar21;
  int unaff_s6;
  float *pfVar22;
  uint uVar23;
  byte *pbVar24;
  code *pcVar25;
  int unaff_s8;
  int iVar26;
  float fVar28;
  float fVar29;
  double dVar27;
  float fVar30;
  float fVar31;
  float fVar32;
  float fVar33;
  float fVar34;
  float fVar35;
  double dVar36;
  undefined4 uVar37;
  double dVar38;
  undefined8 uVar39;
  double dVar40;
  float fVar41;
  double dVar42;
  float fVar43;
  float fVar44;
  float fVar46;
  ulonglong uVar45;
  float fVar47;
  float fVar48;
  float fVar49;
  double dVar50;
  double dVar51;
  uint uVar52;
  undefined *local_50c;
  double local_508;
  double local_500;
  double local_4f8;
  double local_4f0;
  undefined *local_4e8;
  int local_4e4;
  uint local_4dc;
  uint local_4d0;
  uint local_4cc;
  uint local_4c8;
  float local_488;
  float local_484;
  float local_480;
  float local_47c;
  float local_478;
  float local_474;
  float local_470;
  float local_46c;
  float local_468;
  float local_464;
  float local_460;
  float local_45c;
  undefined4 local_458;
  undefined4 local_454;
  undefined4 local_450;
  undefined4 local_44c;
  undefined4 local_448;
  undefined4 local_444;
  undefined4 local_440;
  undefined4 local_43c;
  undefined4 local_438;
  undefined4 local_434;
  undefined4 local_430;
  undefined4 local_42c;
  undefined4 local_428;
  undefined4 local_424;
  undefined4 local_420;
  undefined4 local_41c;
  undefined4 local_418;
  undefined4 local_414;
  undefined4 local_410;
  undefined4 local_40c;
  undefined4 local_408;
  undefined4 local_404;
  undefined4 local_400;
  undefined4 local_3fc;
  undefined4 local_3f8;
  undefined4 local_3f4;
  undefined4 local_3f0;
  undefined4 local_3ec;
  undefined4 local_3e8;
  undefined4 local_3e4;
  undefined4 local_3e0;
  undefined4 local_3dc;
  float local_3d8;
  float local_3d4;
  float local_3d0;
  undefined4 local_3cc;
  byte *local_3c8;
  undefined4 *local_3c4;
  float *local_3c0;
  float *local_3bc;
  undefined4 *local_3b8;
  undefined4 *local_3b4;
  undefined4 *local_3b0;
  undefined4 *local_3ac;
  float *local_3a8;
  undefined4 *local_3a4;
  undefined4 *local_3a0;
  undefined4 *local_39c;
  float *local_398;
  uint local_394;
  float *local_390;
  int local_38c;
  int local_388;
  int local_384;
  float *local_380;
  uint local_37c [16];
  float local_33c [16];
  float local_2fc [64];
  float local_1fc;
  float local_1f8;
  float local_1f4;
  float local_1f0;
  float local_1ec;
  float local_1e8;
  float local_1e4;
  float local_1e0;
  float local_1dc;
  float local_1d8;
  float local_1d4;
  float local_1d0;
  byte local_fc [16];
  byte local_ec [16];
  byte local_dc [16];
  byte abStack_cc [112];
  int local_5c;
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
  uVar5 = *(uint *)(param_1 + 0x1c);
  pfVar21 = unaff_s4;
  if ((int)uVar5 < 1) goto LAB_00216b50;
  local_4d0 = 0;
  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
LAB_00216150:
  do {
    local_508._0_4_ = *(uint *)(param_1 + 0x18);
    local_4c8 = local_4d0 + 4;
    uVar23 = 0;
    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;
    while( true ) {
      local_4cc = uVar23 + 4;
      if (local_4cc < local_508._0_4_) {
        local_508._0_4_ = 4;
      }
      else {
        local_508._0_4_ = local_508._0_4_ - uVar23;
      }
      if (local_4c8 < uVar5) {
        local_4e4 = 4;
      }
      else {
        local_4e4 = uVar5 - local_4d0;
      }
      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)
                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);
      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
      puVar9 = PTR_LAB_003a88e0;
      unaff_s6 = param_2;
      unaff_s8 = param_1;
      if (iVar6 == 0) break;
      unaff_s2 = local_33c;
      unaff_s4 = local_2fc;
      puVar7 = local_37c;
      unaff_s1 = unaff_s2;
      do {
        *unaff_s1 = -NAN;
        unaff_s1 = unaff_s1 + 1;
        *puVar7 = 0xffffffff;
        puVar7 = puVar7 + 1;
      } while (unaff_s4 != unaff_s1);
      pfVar21 = unaff_s4;
      if (local_4e4 < 1) {
        if (param_2 != 0x35545844) {
          unaff_s0 = (byte *)0x0;
          local_474 = 0.0;
          local_478 = 0.0;
          local_47c = 0.0;
          local_480 = 0.0;
          local_484 = 0.0;
          local_488 = 0.0;
          unaff_s3 = (byte *)0x0;
          goto LAB_0021703c;
        }
        local_508._0_4_ = 0;
        uVar23 = 0;
        local_4dc = 5;
        uVar5 = 0xff;
        unaff_s0 = (byte *)0x0;
LAB_002176f8:
        pbVar11 = local_ec;
        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);
        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);
        uVar20 = uVar23;
        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {
          uVar5 = uVar20;
          uVar23 = uVar5 + 7;
          if (0xff < uVar23) {
            uVar23 = 0xff;
          }
          if (uVar23 - uVar5 < 7) {
            uVar5 = uVar23 - 7;
          }
        }
        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);
        if (uVar20 < uVar12) {
          pbVar10 = local_dc;
          pbVar24 = pbVar11;
          do {
            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {
              *pbVar24 = 1;
LAB_002177a8:
              pbVar10 = pbVar10 + 1;
              pbVar24 = pbVar24 + 1;
              if (abStack_cc == pbVar10) goto LAB_002177d8;
            }
            if (bVar1 == 1) {
              *pbVar24 = 0;
              goto LAB_002177a8;
            }
            pbVar10 = pbVar10 + 1;
            *pbVar24 = 9 - bVar1;
            pbVar24 = pbVar24 + 1;
          } while (abStack_cc != pbVar10);
        }
LAB_002177d8:
        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);
        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);
        do {
          uVar5 = 0;
          uVar23 = 0;
          pbVar10 = pbVar11;
          do {
            bVar1 = *pbVar10;
            pbVar10 = pbVar10 + 1;
            uVar20 = uVar5 & 0x1f;
            uVar5 = uVar5 + 3;
            uVar23 = uVar23 | (uint)bVar1 << uVar20;
          } while (uVar5 != 0x18);
          pbVar11 = pbVar11 + 8;
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);
        } while (local_dc != pbVar11);
      }
      else {
        uVar23 = 0;
        unaff_s0 = (byte *)0x0;
        iVar26 = 0;
        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        uVar5 = 0xff;
        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
        uVar20 = 0xff;
        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
        local_4dc = 0;
        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);
        pfVar22 = unaff_s2;
        do {
          if (0 < (int)local_508._0_4_) {
            dVar36 = *(double *)(puVar9 + 0x1400);
            dVar42 = *(double *)(local_50c + -0x5af0);
            dVar38 = *(double *)(puVar9 + 0x1410);
            iVar19 = *(int *)(param_1 + 0x2c0) * 4;
            iVar14 = *(int *)(param_1 + 0x2d0);
            dVar40 = *(double *)(local_4e8 + -0x5ae8);
            puVar7 = local_37c + iVar26 * 4;
            iVar16 = iVar6;
            pfVar18 = pfVar22;
            do {
              if (param_2 == 0x35545844) {
                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {
LAB_00216c58:
                  uVar12 = 0xff;
                  uVar23 = 0xff;
                }
                else {
                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);
                  if (fVar43 <= 0.0) {
                    uVar12 = 0;
                    uVar5 = 0;
                  }
                  else {
                    dVar27 = (double)fVar43 / dVar42;
                    if (dVar40 <= dVar27) goto LAB_00216c58;
                    dVar27 = dVar27 + dVar36;
                    if (dVar38 <= dVar27) {
                      dVar27 = dVar27 - dVar38;
                    }
                    uVar12 = (int)dVar27 & 0xff;
                    if (uVar12 < uVar5) {
                      uVar5 = uVar12;
                    }
                    if (uVar23 < uVar12) {
                      uVar23 = uVar12;
                    }
                    if (uVar12 != 0) {
                      if (uVar12 < uVar20) {
                        uVar20 = uVar12;
                      }
                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {
                        local_4dc = uVar12;
                      }
                    }
                  }
                }
              }
              else {
                uVar12 = 0xff;
              }
              *puVar7 = uVar12;
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);
              fVar43 = 0.0;
              if ((0.0 < fVar29) &&
                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {
                dVar27 = dVar27 + dVar36;
                if (dVar51 <= dVar27) {
                  dVar27 = dVar27 - dVar51;
                }
                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;
              }
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);
              fVar34 = 0.0;
              if (0.0 < fVar29) {
                dVar27 = (double)fVar29 / local_500;
                fVar34 = *(float *)(puVar3 + -0x5a8c);
                if (dVar27 < local_4f8) {
                  dVar27 = dVar27 + dVar50;
                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {
                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);
                  }
                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);
              fVar48 = 0.0;
              if (0.0 < fVar29) {
                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);
                fVar48 = *(float *)(puVar3 + -0x5a8c);
                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {
                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);
                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {
                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);
                  }
                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar29 = *(float *)(puVar3 + -0x5a8c);
              if (param_4 != 0) {
                fVar29 = (float)(uVar12 + 1) * fVar47;
              }
              iVar16 = iVar16 + iVar19;
              if (0 < (int)unaff_s0) {
                pbVar11 = (byte *)0x0;
                pfVar8 = unaff_s4;
                do {
                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&
                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {
                    *pfVar18 = (float)pbVar11;
                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;
                    goto LAB_002164d0;
                  }
                  pbVar11 = pbVar11 + 1;
                  pfVar8 = pfVar8 + 4;
                } while (pbVar11 != unaff_s0);
              }
              *pfVar18 = (float)unaff_s0;
              local_2fc[(int)unaff_s0 * 4] = fVar43;
              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;
              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;
              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;
              unaff_s0 = unaff_s0 + 1;
LAB_002164d0:
              pfVar18 = pfVar18 + 1;
              puVar7 = puVar7 + 1;
            } while (pfVar22 + local_508._0_4_ != pfVar18);
            iVar6 = iVar19 * local_508._0_4_ + iVar6;
          }
          iVar26 = iVar26 + 1;
          pfVar22 = pfVar22 + 4;
        } while (iVar26 != local_4e4);
        if (0 < (int)unaff_s0) {
          uVar39 = 0;
          pfVar18 = local_2fc + 3;
          pfVar22 = pfVar18 + (int)unaff_s0 * 4;
          do {
            fVar28 = SQRT(*pfVar18);
            if (*pfVar18 < (float)uVar39) {
              (*(code *)PTR_sqrtf_003a9800)();
            }
            *pfVar18 = fVar28;
            pfVar18 = pfVar18 + 4;
          } while (pfVar22 != pfVar18);
        }
        if (param_2 == 0x35545844) {
          local_508._0_4_ = local_4dc;
          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {
            local_4dc = local_508._0_4_ + 5;
            if (0xff < local_4dc) {
              local_4dc = 0xff;
            }
            if (local_4dc - local_508._0_4_ < 5) {
              local_508._0_4_ = local_4dc - 5;
            }
          }
          goto LAB_002176f8;
        }
      }
      unaff_s3 = unaff_s0;
      if (unaff_s0 != (byte *)0x1) {
        local_474 = 0.0;
        local_478 = 0.0;
        local_47c = 0.0;
        local_480 = 0.0;
        local_484 = 0.0;
        local_488 = 0.0;
        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;
        fVar47 = 0.0;
        fVar49 = 0.0;
        fVar43 = 0.0;
        fVar28 = 0.0;
        pfVar22 = unaff_s4;
        do {
          fVar29 = pfVar22[3];
          pfVar18 = pfVar22 + 4;
          fVar28 = fVar28 + fVar29;
          fVar43 = fVar29 * *pfVar22 + fVar43;
          fVar49 = fVar29 * pfVar22[1] + fVar49;
          fVar47 = fVar29 * pfVar22[2] + fVar47;
          pfVar22 = pfVar18;
        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);
        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {
          fVar43 = fVar43 / fVar28;
          fVar49 = fVar49 / fVar28;
          fVar47 = fVar47 / fVar28;
        }
        fVar46 = 0.0;
        fVar44 = 0.0;
        fVar48 = 0.0;
        fVar28 = 0.0;
        fVar34 = 0.0;
        fVar29 = 0.0;
        pfVar22 = unaff_s4;
        do {
          pfVar18 = pfVar22 + 4;
          fVar32 = *pfVar22 - fVar43;
          fVar30 = pfVar22[3];
          fVar33 = pfVar22[1] - fVar49;
          fVar31 = (pfVar22[2] - fVar47) * fVar30;
          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;
          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;
          fVar28 = fVar32 * fVar31 + fVar28;
          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;
          fVar44 = fVar33 * fVar31 + fVar44;
          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;
          pfVar22 = pfVar18;
          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;
        } while( true );
      }
      iVar6 = 0;
      uVar5 = 0xffffffff;
      iVar26 = 0;
      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);
      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);
      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);
      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);
      if (0xff < uVar12) {
        uVar12 = 0xff;
      }
      if (0xff < uVar20) {
        uVar20 = 0xff;
      }
      if (0xff < uVar23) {
        uVar23 = 0xff;
      }
      local_fc[2] = (char)uVar20;
      local_fc[1] = (char)uVar12;
      local_fc[0] = (byte)uVar23;
      while( true ) {
        iVar16 = iVar26 * 3;
        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);
        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);
        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);
        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +
                 (uint)pbVar11[2] * (uint)pbVar11[2];
        if (uVar52 <= uVar5) {
          local_3d8 = (float)*pbVar11 / fVar28;
          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);
          local_3d0 = (float)*pbVar10 / fVar28;
          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);
          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));
          local_3c0 = (float *)((float)pbVar10[1] / fVar28);
          iVar6 = iVar26 * 2;
          uVar5 = uVar52;
        }
        if (iVar26 == 1) break;
        iVar26 = 1;
      }
      pbVar11 = local_ec;
      do {
        *pbVar11 = (byte)iVar6;
        pbVar11 = pbVar11 + 1;
        pbVar10 = local_dc;
      } while (local_dc != pbVar11);
      do {
        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {
          *pbVar10 = local_ec[(int)*pfVar21];
          pbVar10 = pbVar10 + 1;
          unaff_s2 = pfVar21 + 1;
          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;
        }
        *pbVar10 = 3;
        pbVar10 = pbVar10 + 1;
        unaff_s2 = pfVar21 + 1;
      } while (unaff_s1 != pfVar21 + 1);
LAB_00216f04:
      unaff_s2 = pfVar21 + 1;
      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);
      while( true ) {
        local_508._0_4_ = *(uint *)(param_1 + 0x18);
        uVar5 = *(uint *)(param_1 + 0x1c);
        uVar23 = local_4cc;
        if ((int)local_4cc < (int)local_508._0_4_) break;
LAB_00216b38:
        local_4d0 = local_4c8;
        pfVar21 = unaff_s4;
        unaff_s6 = param_2;
        unaff_s8 = param_1;
        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;
LAB_00216b50:
        if (local_5c == *(int *)puVar4) {
          return;
        }
        (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_0021703c:
        fVar46 = 0.0;
        param_2 = unaff_s6;
        param_1 = unaff_s8;
        fVar28 = fVar46;
        fVar29 = fVar46;
        fVar34 = fVar46;
        fVar48 = fVar46;
        fVar44 = fVar46;
LAB_0021663c:
        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
        iVar6 = 8;
        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
        fVar47 = fVar43;
        fVar49 = fVar43;
        do {
          while( true ) {
            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;
            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;
            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;
            if (fVar30 <= fVar31) break;
            if (fVar49 <= fVar30) goto LAB_0021668c;
LAB_00216720:
            local_508 = (double)fVar49;
            if (fVar49 < 0.0) goto LAB_00216730;
LAB_002166ac:
            dVar36 = dVar51;
            if (dVar50 <= local_508) goto LAB_002166c4;
LAB_00216758:
            iVar6 = iVar6 + -1;
            fVar43 = (float)(dVar36 / dVar50);
            fVar49 = fVar49 * fVar43;
            fVar47 = fVar30 * fVar43;
            fVar43 = fVar31 * fVar43;
            if (iVar6 == 0) goto LAB_00216774;
          }
          if (fVar31 < fVar49) goto LAB_00216720;
LAB_0021668c:
          fVar47 = fVar30;
          if (fVar30 <= fVar31) {
            fVar47 = fVar31;
          }
          local_508 = (double)fVar47;
          if (0.0 <= fVar47) goto LAB_002166ac;
LAB_00216730:
          local_4f0 = -local_508;
          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);
          if (local_4f0 < dVar50) goto LAB_00216758;
LAB_002166c4:
          iVar6 = iVar6 + -1;
          fVar43 = (float)(dVar51 / local_508);
          fVar49 = fVar49 * fVar43;
          fVar47 = fVar30 * fVar43;
          fVar43 = fVar31 * fVar43;
        } while (iVar6 != 0);
LAB_00216774:
        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);
        if (param_3 == 0) {
          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;
          local_478 = local_2fc[1];
          local_47c = local_2fc[0];
          local_474 = local_2fc[2];
          local_488 = local_2fc[0];
          local_484 = local_2fc[1];
          local_480 = local_2fc[2];
          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];
          if ((int)unaff_s3 < 2) {
            if (0.0 <= local_2fc[0]) {
              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
              goto LAB_002179a0;
            }
LAB_002171e0:
            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002171e8:
            uVar39 = CONCAT44(uVar37,fVar28);
            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (0.0 <= local_478) {
LAB_002179c0:
              fVar29 = local_474;
              fVar34 = local_478;
              fVar47 = local_488;
              fVar49 = local_484;
              fVar43 = local_480;
              if (local_478 <= fVar28) goto LAB_002167a4;
              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002167b4;
            }
          }
          else {
            pfVar22 = local_2fc + 4;
            bVar2 = false;
            bVar15 = false;
            bVar17 = false;
            bVar13 = false;
            fVar29 = local_2fc[0];
            fVar34 = fVar28;
            fVar48 = local_2fc[2];
            fVar44 = local_2fc[1];
            fVar46 = local_2fc[2];
            fVar30 = local_2fc[0];
            fVar31 = local_2fc[1];
            do {
              while( true ) {
                fVar41 = pfVar22[1];
                fVar33 = *pfVar22;
                fVar32 = pfVar22[2];
                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;
                if (fVar35 < fVar34) break;
                if (fVar28 < fVar35) {
                  bVar2 = true;
                  bVar15 = true;
                  bVar17 = true;
                  fVar29 = fVar33;
                  fVar48 = fVar32;
                  fVar44 = fVar41;
                  fVar28 = fVar35;
                }
                pfVar22 = pfVar22 + 4;
                fVar32 = fVar46;
                fVar33 = fVar30;
                fVar41 = fVar31;
                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;
              }
              pfVar22 = pfVar22 + 4;
              bVar13 = true;
              fVar34 = fVar35;
              fVar46 = fVar32;
              fVar30 = fVar33;
              fVar31 = fVar41;
            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);
LAB_00217194:
            if (bVar13) {
              local_47c = fVar33;
              local_478 = fVar41;
              local_474 = fVar32;
            }
            if (bVar17) {
              local_488 = fVar29;
            }
            if (bVar15) {
              local_484 = fVar44;
            }
            if (bVar2) {
              local_480 = fVar48;
            }
            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (local_47c < 0.0) goto LAB_002171e0;
LAB_002179a0:
            if (local_47c <= fVar28) {
              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
              goto LAB_002171e8;
            }
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
            if (0.0 <= local_478) {
              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
              goto LAB_002179c0;
            }
          }
          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          fVar29 = local_474;
          fVar47 = local_488;
          fVar49 = local_484;
          fVar43 = local_480;
          if (0.0 <= local_474) goto LAB_002167c4;
LAB_0021720c:
          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          if ((float)uVar39 <= 0.0) goto LAB_00217224;
LAB_002167f4:
          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();
          uVar39 = CONCAT44(uVar37,fVar28);
joined_r0x00216814:
          if (fVar28 <= 0.0) {
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          else {
            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
          }
          uVar39 = CONCAT44(uVar37,fVar29);
          if (0.0 < fVar29) {
            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (0.0 <= fVar47) goto LAB_00216890;
LAB_002170a0:
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
LAB_002168a8:
            if (0.0 <= fVar49) {
              fVar28 = *(float *)(puVar9 + -0x5a8c);
              goto LAB_002168bc;
            }
LAB_00217004:
            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002168d0:
            if (0.0 <= fVar43) {
              fVar47 = *(float *)(puVar9 + -0x5a8c);
              goto LAB_002168e4;
            }
LAB_00216f6c:
            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;
LAB_00216910:
            unaff_s0 = PTR_UINT_003a8950;
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar49 = local_47c;
            fVar43 = local_478;
            fVar29 = local_474;
            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();
            uVar39 = CONCAT44(uVar37,fVar28);
            if (0.0 < fVar28) goto LAB_00216938;
LAB_00216fa0:
            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);
            if (fVar47 <= 0.0) goto LAB_00216fc8;
LAB_00216960:
            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);
          }
          else {
            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (fVar47 < 0.0) goto LAB_002170a0;
LAB_00216890:
            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {
              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
              goto LAB_002168a8;
            }
            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));
            fVar28 = *(float *)(puVar9 + -0x5a8c);
            if (fVar49 < 0.0) goto LAB_00217004;
LAB_002168bc:
            if (fVar28 < fVar49) {
              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002168d0;
            }
            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
            fVar47 = *(float *)(puVar9 + -0x5a8c);
            if (fVar43 < 0.0) goto LAB_00216f6c;
LAB_002168e4:
            if (fVar43 <= fVar47) {
              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if (0.0 < (float)uVar39) goto LAB_00216910;
LAB_00216f7c:
            unaff_s0 = PTR_UINT_003a8950;
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar49 = local_47c;
            fVar43 = local_478;
            fVar29 = local_474;
            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar39 = CONCAT44(uVar37,fVar28);
            if (fVar28 <= 0.0) goto LAB_00216fa0;
LAB_00216938:
            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();
            if (0.0 < fVar47) goto LAB_00216960;
LAB_00216fc8:
            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);
          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);
          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);
          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);
          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);
          local_1fc = local_47c;
          local_1f8 = local_478;
          local_1f4 = local_474;
          local_1f0 = local_488;
          local_1ec = local_484;
          local_1e8 = local_480;
          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;
          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;
          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;
          local_1dc = fVar29 * fVar47 + local_480 * fVar34;
          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;
          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;
          if (0 < (int)unaff_s3) {
            pbVar11 = local_dc;
            unaff_s3 = unaff_s3 + (int)pbVar11;
            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);
            do {
              iVar26 = 0;
              pfVar22 = &local_1fc;
              iVar6 = 0;
              fVar47 = fVar28;
              do {
                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +
                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +
                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);
                iVar16 = iVar26;
                if (fVar47 <= fVar49) {
                  iVar16 = iVar6;
                  fVar49 = fVar47;
                }
                fVar47 = fVar49;
                iVar26 = iVar26 + 1;
                pfVar22 = pfVar22 + 3;
                iVar6 = iVar16;
              } while (iVar26 != 4);
              *pbVar11 = (byte)iVar16;
              pbVar11 = pbVar11 + 1;
              pfVar21 = pfVar21 + 4;
            } while (unaff_s3 != pbVar11);
          }
          pbVar11 = local_fc;
          do {
            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {
              unaff_s2 = unaff_s2 + 1;
              *pbVar11 = local_dc[(int)fVar28];
              pbVar11 = pbVar11 + 1;
              if (unaff_s1 == unaff_s2) goto LAB_00216af4;
            }
            unaff_s2 = unaff_s2 + 1;
            *pbVar11 = 3;
            pbVar11 = pbVar11 + 1;
          } while (unaff_s1 != unaff_s2);
        }
        else {
          if (unaff_s0 == (byte *)0x0) {
LAB_00216788:
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
            fVar29 = 0.0;
            fVar34 = 0.0;
            fVar47 = 0.0;
            fVar49 = 0.0;
            fVar43 = 0.0;
LAB_002167a4:
            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002167b4:
            if (fVar29 < 0.0) goto LAB_0021720c;
LAB_002167c4:
            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {
              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if (0.0 < (float)uVar39) goto LAB_002167f4;
LAB_00217224:
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar39 = CONCAT44(uVar37,fVar28);
            goto joined_r0x00216814;
          }
          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);
          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);
          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);
          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);
          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);
          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);
          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);
          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);
          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);
          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);
          local_43c = 0;
          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);
          local_42c = 0;
          local_3d8 = 0.0;
          local_3d4 = 0.0;
          local_3d0 = 0.0;
          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);
          local_3cc = 0;
          local_470 = fVar49;
          local_46c = fVar47;
          local_468 = fVar43;
          local_454 = local_458;
          local_450 = local_458;
          local_44c = local_458;
          local_440 = local_448;
          local_430 = local_438;
          local_424 = local_428;
          local_420 = local_428;
          local_41c = local_428;
          local_414 = local_418;
          local_410 = local_418;
          local_404 = local_408;
          local_400 = local_408;
          local_3fc = local_408;
          local_3f4 = local_3f8;
          local_3f0 = local_3f8;
          local_3ec = local_3f8;
          local_3e4 = local_3e8;
          local_3e0 = local_3e8;
          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);
          iVar6 = 0;
          iVar26 = 0;
          iVar16 = 0;
          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);
          pfVar22 = (float *)0x0;
          unaff_s4 = (float *)0x0;
          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;
          do {
            uVar5 = (uint)uVar45;
            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
            local_3c8 = unaff_s0;
            local_3c4 = &local_458;
            local_3c0 = &local_47c;
            local_3bc = &local_488;
            local_3b8 = &local_448;
            local_3b4 = &local_438;
            local_3b0 = &local_428;
            local_3ac = &local_418;
            local_3a8 = &local_1fc;
            local_3a4 = &local_408;
            local_3a0 = &local_3f8;
            local_39c = &local_3e8;
            local_398 = &local_3d8;
            local_394 = uVar5;
            local_390 = unaff_s4;
            local_38c = iVar6;
            local_388 = iVar26;
            local_384 = iVar16;
            local_380 = pfVar22;
            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);
            iVar16 = local_384;
            iVar26 = local_388;
            iVar6 = local_38c;
            unaff_s4 = local_390;
            uVar45 = (ulonglong)local_394;
            pfVar18 = unaff_s4;
            if (pfVar22 != local_390) break;
            pfVar22 = (float *)((int)pfVar22 + 1);
            if (pfVar22 == (float *)&DAT_00000008) {
              pfVar18 = (float *)&DAT_00000007;
              break;
            }
            local_45c = local_480 - local_474;
            local_460 = local_484 - local_478;
            local_464 = local_488 - local_47c;
            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8
                                ,local_dc,pfVar22);
          } while (iVar14 != 0);
          pbVar11 = local_dc + (int)pfVar18 * 0x10;
          if (0 < iVar6) {
            pbVar10 = pbVar11;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 0;
            } while (pbVar11 + iVar6 != pbVar10);
          }
          if (iVar6 < iVar26) {
            pbVar10 = pbVar11 + iVar6;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 2;
            } while (pbVar11 + iVar26 != pbVar10);
          }
          if (iVar26 < iVar16) {
            pbVar10 = pbVar11 + iVar26;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 3;
            } while (pbVar11 + iVar16 != pbVar10);
          }
          if (iVar16 < (int)unaff_s3) {
            pbVar10 = pbVar11 + iVar16;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 1;
            } while (pbVar11 + (int)unaff_s3 != pbVar10);
          }
          pbVar11 = local_fc;
          do {
            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {
              *pbVar11 = local_ec[(int)*pfVar21];
              pbVar11 = pbVar11 + 1;
              unaff_s2 = pfVar21 + 1;
              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;
            }
            *pbVar11 = 3;
            pbVar11 = pbVar11 + 1;
            unaff_s2 = pfVar21 + 1;
          } while (unaff_s1 != pfVar21 + 1);
LAB_002176b0:
          unaff_s2 = pfVar21 + 1;
        }
LAB_00216af4:
        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);
      }
    }
    local_4d0 = local_4c8;
    uVar5 = *(uint *)(param_1 + 0x1c);
    pfVar21 = unaff_s4;
    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;
  } while( true );
}


lui gp,0x1a
addiu gp,gp,-0x57f4
addu gp,gp,t9
addiu sp,sp,-0x540
lw v1,-0x7680(gp)
sdc1 f30,0x538(sp)
lw v0,0x550(sp)
sw v1,0xb4(sp)
sw gp,0x28(sp)
sw v0,0x84(sp)
sw ra,0x50c(sp)
sw s8,0x508(sp)
sw s7,0x504(sp)
sw s6,0x500(sp)
sw s5,0x4fc(sp)
sw s4,0x4f8(sp)
sw s3,0x4f4(sp)
sw s2,0x4f0(sp)
sw s1,0x4ec(sp)
sw s0,0x4e8(sp)
sw a2,0x548(sp)
sw a3,0x54c(sp)
lw v1,0x0(v1)
lw v0,0x1c(a0)
sdc1 f28,0x530(sp)
sw v1,0x4e4(sp)
sdc1 f26,0x528(sp)
sdc1 f24,0x520(sp)
sdc1 f22,0x518(sp)
blez v0,0x00216b4c
_sdc1 f20,0x510(sp)
lw v1,-0x7fc8(gp)
or s8,a0,zero
lw a0,-0x7fc8(gp)
or s6,a1,zero
sw zero,0x70(sp)
ldc1 f0,-0x5af0(v1)
sw v1,0x34(sp)
sw a0,0x58(sp)
sdc1 f0,0x40(sp)
ldc1 f0,-0x5ae8(a0)
sdc1 f0,0x48(sp)
lw v1,0x70(sp)
or a1,zero,zero
lw s7,0x18(s8)
addiu v1,v1,0x4
blez s7,0x00216b38
_sw v1,0x78(sp)
addiu v1,a1,0x4
sw v1,0x74(sp)
sltu v1,v1,s7
bne v1,zero,0x00216d00
_li v1,0x4
subu v1,s7,a1
sw v1,0x38(sp)
lw v1,0x78(sp)
sltu v1,v1,v0
bne v1,zero,0x00216cf4
_lw v1,0x70(sp)
subu v0,v0,v1
sw v0,0x5c(sp)
lw v0,0x84(sp)
or a0,s8,zero
lw t9,-0x714c(gp)
lw a3,0x38(sp)
lw a2,0x70(sp)
sw v0,0x14(sp)
lw v0,0x5c(sp)
jalr t9
_sw v0,0x10(sp)
lw gp,0x28(sp)
beq v0,zero,0x00217908
_or s5,v0,zero
addiu s2,sp,0x204
addiu v0,sp,0x1c4
addiu s4,sp,0x244
li v1,-0x1
sw v0,0x60(sp)
or s1,s2,zero
sw v1,0x0(s1)
addiu s1,s1,0x4
sw v1,0x0(v0)
bne s4,s1,0x002161e0
_addiu v0,v0,0x4
lw v0,0x5c(sp)
blez v0,0x0021700c
_lw v0,0x38(sp)
li t4,0xff
lw t8,-0x7fc8(gp)
li v1,0xff
lw t7,-0x7fd0(gp)
or s7,zero,zero
sll v0,v0,0x2
lw t6,-0x7fd0(gp)
lw t9,-0x7fc8(gp)
or s0,zero,zero
sw v0,0x6c(sp)
or ra,zero,zero
lw v0,-0x7f60(gp)
or t5,s2,zero
lwc1 f0,-0x5a8c(t8)
sw s1,0x7c(sp)
or s1,t4,zero
ldc1 f30,0x1410(t6)
sw s2,0x80(sp)
or s2,v1,zero
lwc1 f26,-0x5a94(t9)
sw zero,0x64(sp)
ldc1 f28,0x1400(t7)
lw t4,0x54c(sp)
lwc1 f24,-0x1e5c(v0)
swc1 f0,0x68(sp)
lw v0,0x38(sp)
blez v0,0x00216c64
_lw v0,0x34(sp)
sll t1,ra,0x4
ldc1 f10,0x1400(t7)
or t0,t5,zero
lw t2,0x2c0(s8)
or a3,s5,zero
ldc1 f16,-0x5af0(v0)
lw v0,0x6c(sp)
ldc1 f12,0x1410(t6)
sll t2,t2,0x2
lw a2,0x2d0(s8)
addu t3,v0,t5
lw v0,0x58(sp)
mov.D f8,f10
ldc1 f14,-0x5ae8(v0)
mov.D f6,f16
lw v0,0x60(sp)
addu t1,v0,t1
mov.D f4,f14
lui v0,0x3554
addiu v0,v0,0x5844
beq s6,v0,0x00216bc8
_li v0,0xff
li a0,0xff
sw v0,0x0(t1)
lw v1,0x8(a2)
sll v1,v1,0x2
addu v1,a3,v1
lwc1 f0,0x0(v1)
c.un.S f0,f0
bc1t 0x4,0x00216334
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x5,0x00216334
_nop
cvt.d.S f0,f0
div.D f0,f0,f6
c.le.D f4,f0
bc1t 0x6,0x00216334
_lwc1 f2,0x68(sp)
add.D f0,f0,f8
c.le.D f30,f0
bc1t 0x7,0x00216c38
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v1,f0
andi v1,v1,0xff
mtc1 v1,f0
cvt.s.W f2,f0
div.S f2,f2,f26
lw v1,0x14(a2)
sll v1,v1,0x2
addu v1,a3,v1
lwc1 f0,0x0(v1)
c.un.S f0,f0
bc1t 0x002163a8
_mtc1 zero,f20
c.le.S f0,f20
bc1t 0x1,0x002163a8
_nop
ldc1 f18,0x40(sp)
cvt.d.S f0,f0
div.D f0,f0,f18
ldc1 f18,0x48(sp)
c.le.D f18,f0
bc1t 0x2,0x002163a8
_lwc1 f20,-0x5a8c(t8)
add.D f0,f0,f28
ldc1 f18,0x1410(t6)
c.le.D f18,f0
bc1t 0x3,0x00216c24
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v1,f0
andi v1,v1,0xff
lwc1 f20,-0x5a94(t9)
mtc1 v1,f0
cvt.s.W f0,f0
div.S f20,f0,f20
lw v1,0x20(a2)
sll v1,v1,0x2
addu v1,a3,v1
lwc1 f0,0x0(v1)
c.un.S f0,f0
bc1t 0x4,0x00216424
_mtc1 zero,f22
c.le.S f0,f22
bc1t 0x5,0x00216424
_lw v1,0x34(sp)
cvt.d.S f0,f0
ldc1 f22,-0x5af0(v1)
lw v1,0x58(sp)
ldc1 f18,-0x5ae8(v1)
div.D f0,f0,f22
c.le.D f18,f0
bc1t 0x6,0x00216424
_lwc1 f22,-0x5a8c(t8)
ldc1 f22,0x1400(t7)
ldc1 f18,0x1410(t6)
add.D f0,f0,f22
c.le.D f18,f0
bc1t 0x7,0x00216c10
_lui s3,0x8000
trunc.w.D f0,f0
mfc1 a1,f0
andi a1,a1,0xff
lwc1 f0,-0x5a94(t9)
mtc1 a1,f18
cvt.s.W f22,f18
div.S f22,f22,f0
beq t4,zero,0x0021643c
_lwc1 f0,-0x5a8c(t8)
addiu v0,v0,0x1
mtc1 v0,f0
cvt.s.W f0,f0
mul.S f0,f0,f24
addu a3,a3,t2
blez s0,0x002164a8
_or s3,s0,zero
lui a1,0x3554
or v1,zero,zero
addiu a1,a1,0x5844
or v0,s4,zero
seb a0,a0
lwc1 f18,0x0(v0)
c.eq.S f18,f2
bc1f 0x0021649c
_nop
lwc1 f18,0x4(v0)
c.eq.S f18,f20
bc1f 0x1,0x0021649c
_nop
lwc1 f18,0x8(v0)
c.eq.S f18,f22
bc1f 0x2,0x0021649c
_nop
bltz a0,0x00216ba8
_nop
beq s6,a1,0x00216ba8
_nop
addiu v1,v1,0x1
bne v1,s0,0x0021645c
_addiu v0,v0,0x10
sll v1,s0,0x4
sw s0,0x0(t0)
addiu v0,sp,0x4e8
addiu s0,s0,0x1
addu v1,v0,v1
or s3,s0,zero
swc1 f2,-0x2a4(v1)
swc1 f20,-0x2a0(v1)
swc1 f22,-0x29c(v1)
swc1 f0,-0x298(v1)
addiu t0,t0,0x4
bne t3,t0,0x002162b8
_addiu t1,t1,0x4
lw v0,0x38(sp)
mul v1,t2,v0
addu s5,v1,s5
lw v0,0x5c(sp)
addiu ra,ra,0x1
bne ra,v0,0x00216264
_addiu t5,t5,0x10
sw s2,0x38(sp)
or t4,s1,zero
lw s2,0x80(sp)
blez s0,0x0021653c
_lw s1,0x7c(sp)
mtc1 zero,f22
addiu s5,sp,0x250
sll v0,s0,0x4
addu v0,v0,s5
lwc1 f12,0x0(s5)
c.ule.S f22,f12
bc1f 0x3,0x002179d8
_sqrt.S f20,f12
swc1 f20,0x0(s5)
addiu s5,s5,0x10
bne v0,s5,0x0021651c
_nop
lui v0,0x3554
addiu v0,v0,0x5844
beq s6,v0,0x002176d8
_li v0,0x1
beq s0,v0,0x00216d08
_lw v0,-0x7fc4(gp)
sw zero,0xcc(sp)
sw zero,0xc8(sp)
sw zero,0xc4(sp)
sw zero,0xc0(sp)
sw zero,0xbc(sp)
beq s0,zero,0x00217a00
_sw zero,0xb8(sp)
sll v1,s0,0x4
or v0,s4,zero
addu a0,v1,s4
mtc1 zero,f12
mov.S f14,f12
mov.S f16,f12
mov.S f2,f12
lwc1 f0,0xc(v0)
addiu v0,v0,0x10
lwc1 f8,-0x10(v0)
add.S f2,f2,f0
lwc1 f6,-0xc(v0)
lwc1 f4,-0x8(v0)
madd.S f16,f16,f0,f8
madd.S f14,f14,f0,f6
bne a0,v0,0x0021658c
_madd.S f12,f12,f0,f4
lw v0,-0x7f60(gp)
lwc1 f0,-0x1e58(v0)
c.lt.S f0,f2
bc1f 0x4,0x002165d4
_nop
div.S f16,f16,f2
div.S f14,f14,f2
div.S f12,f12,f2
addu v1,v1,s4
or v0,s4,zero
mtc1 zero,f20
mov.S f18,f20
mov.S f24,f20
mov.S f8,f20
mov.S f6,f20
mov.S f22,f20
lwc1 f2,0x0(v0)
addiu v0,v0,0x10
lwc1 f4,-0xc(v0)
sub.S S f2,f2,f16
lwc1 f10,-0x8(v0)
lwc1 f0,-0x4(v0)
sub.S S f4,f4,f14
sub.S S f10,f10,f12
mul.S f28,f2,f0
mul.S f26,f4,f0
mul.S f0,f10,f0
madd.S f22,f22,f28,f2
madd.S f6,f6,f2,f26
madd.S f8,f8,f2,f0
madd.S f24,f24,f4,f26
madd.S f18,f18,f4,f0
bne v1,v0,0x002165f4
_madd.S f20,f20,f10,f0
lw a0,-0x7fd0(gp)
li v0,0x8
lw s5,-0x7fc8(gp)
mtc1 zero,f26
lui v1,0x8000
ldc1 f12,0x1438(a0)
lw a0,-0x7fd0(gp)
lwc1 f2,-0x5a8c(s5)
lw a3,0x1a7c(a0)
lw a2,0x1a78(a0)
lw a0,-0x7fd0(gp)
mov.D f14,f12
ldc1 f10,0x13f8(a0)
mov.S f0,f2
b 0x002166e4
_mov.S f4,f2
mov.S f0,f16
c.lt.S f0,f4
bc1t 0x6,0x00216720
_mov.S f0,f4
c.lt.S f28,f16
bc1f 0x7,0x0021669c
_mov.S f0,f28
mov.S f0,f16
c.lt.S f0,f26
cvt.d.S f0,f0
bc1t 0x00216730
_sdc1 f0,0x38(sp)
ldc1 f0,0x38(sp)
sdc1 f0,0x50(sp)
ldc1 f0,0x50(sp)
c.le.D f10,f0
bc1f 0x1,0x00216758
_mov.D f2,f12
ldc1 f0,0x38(sp)
addiu v0,v0,-0x1
div.D f2,f14,f0
cvt.s.D f2,f2
mul.S f4,f4,f2
mul.S f0,f16,f2
beq v0,zero,0x00216774
_mul.S f2,f28,f2
mul.S f16,f24,f0
mul.S f28,f18,f0
mul.S f0,f6,f0
madd.S f16,f16,f6,f4
madd.S f28,f28,f8,f4
madd.S f4,f0,f22,f4
madd.S f16,f16,f18,f2
madd.S f28,f28,f20,f2
c.lt.S f28,f16
bc1t 0x5,0x0021667c
_madd.S f4,f4,f8,f2
mov.S f0,f28
c.lt.S f0,f4
bc1f 0x6,0x0021668c
_mov.S f0,f4
c.lt.S f0,f26
cvt.d.S f0,f0
bc1f 0x002166ac
_sdc1 f0,0x38(sp)
lw a0,0x38(sp)
mtc1 a3,f2
xor a0,a0,v1
sw a0,0x50(sp)
lw a0,0x3c(sp)
sw a0,0x54(sp)
ldc1 f0,0x50(sp)
c.le.D f10,f0
bc1t 0x1,0x002166c4
_mthc1 a2,f2
div.D f2,f2,f10
addiu v0,v0,-0x1
cvt.s.D f2,f2
mul.S f4,f4,f2
mul.S f0,f16,f2
bne v0,zero,0x002166e4
_mul.S f2,f28,f2
lw v0,0x548(sp)
beq v0,zero,0x002170ac
_nop
bne s0,zero,0x00217260
_lw v0,-0x7fc4(gp)
mtc1 zero,f0
lw v0,-0x7fc4(gp)
lwc1 f12,-0xe34(v0)
mov.S f22,f0
mov.S f30,f0
mov.S f28,f0
mov.S f26,f0
lwc1 f2,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f4,-0x1e6c(v0)
madd.S f22,f2,f22,f4
mtc1 zero,f2
c.lt.S f0,f2
bc1t 0x0021720c
_nop
lwc1 f2,-0x5a8c(s5)
c.lt.S f2,f0
bc1t 0x1,0x002176cc
_lw v0,-0x7fc4(gp)
lwc1 f20,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f2,-0x1e70(v0)
madd.S f20,f20,f0,f2
mtc1 zero,f0
c.lt.S f0,f12
bc1f 0x2,0x00217224
_lw t9,-0x742c(gp)
lw t9,-0x7410(gp)
jalr t9
_nop
mov.S f12,f22
cvt.d.S f0,f0
cvt.s.D f24,f0
mtc1 zero,f0
c.lt.S f0,f22
bc1f 0x3,0x00217248
_lw gp,0x28(sp)
lw t9,-0x7410(gp)
jalr t9
_nop
cvt.d.S f0,f0
lw gp,0x28(sp)
cvt.s.D f22,f0
mtc1 zero,f0
c.lt.S f0,f20
bc1f 0x4,0x00217054
_mov.S f12,f20
lw t9,-0x7410(gp)
jalr t9
_nop
cvt.d.S f0,f0
lw gp,0x28(sp)
lw s7,-0x7f60(gp)
lw s0,-0x7f60(gp)
lwc1 f20,-0x1e54(s7)
cvt.s.D f0,f0
lwc1 f2,-0x1e50(s0)
mul.S f24,f24,f20
mul.S f20,f0,f20
mtc1 zero,f0
mul.S f22,f22,f2
swc1 f24,0xc4(sp)
swc1 f20,0xcc(sp)
c.lt.S f26,f0
bc1t 0x5,0x002170a0
_swc1 f22,0xc8(sp)
lwc1 f0,-0x5a8c(s5)
c.lt.S f0,f26
bc1f 0x6,0x00216fe0
_lw v0,-0x7fc4(gp)
lw v0,-0x7f60(gp)
lwc1 f12,-0x1e68(v0)
mtc1 zero,f0
c.lt.S f28,f0
bc1t 0x7,0x00217004
_lw v0,-0x7fc4(gp)
lwc1 f0,-0x5a8c(s5)
c.lt.S f0,f28
bc1f 0x00216f44
_lw v0,-0x7fc4(gp)
lw v0,-0x7f60(gp)
lwc1 f28,-0x1e64(v0)
mtc1 zero,f0
c.lt.S f30,f0
bc1t 0x1,0x00216f6c
_lw v0,-0x7fc4(gp)
lwc1 f0,-0x5a8c(s5)
c.lt.S f0,f30
bc1t 0x2,0x002176c0
_lw v0,-0x7fc4(gp)
lwc1 f0,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f2,-0x1e70(v0)
madd.S f30,f0,f30,f2
mtc1 zero,f0
c.lt.S f0,f12
bc1f 0x3,0x00216f7c
_lw t9,-0x742c(gp)
lw t9,-0x7410(gp)
jalr t9
_nop
mov.S f12,f28
cvt.d.S f0,f0
cvt.s.D f26,f0
mtc1 zero,f0
c.lt.S f0,f28
bc1f 0x4,0x00216fa0
_lw gp,0x28(sp)
lw t9,-0x7410(gp)
jalr t9
_nop
mov.S f12,f30
cvt.d.S f0,f0
cvt.s.D f28,f0
mtc1 zero,f0
c.lt.S f0,f30
bc1f 0x5,0x00216fc8
_lw gp,0x28(sp)
lw t9,-0x7410(gp)
jalr t9
_nop
cvt.d.S f0,f0
lw gp,0x28(sp)
lwc1 f8,-0x1e54(s7)
cvt.s.D f0,f0
lw v0,-0x7f60(gp)
lwc1 f10,-0x1e50(s0)
lwc1 f2,-0x1e4c(v0)
lw v0,-0x7f60(gp)
mul.S f26,f26,f8
lwc1 f6,-0x1e48(v0)
lw v0,0xc4(sp)
mul.S f4,f28,f10
mul.S f0,f0,f8
sw v0,0x344(sp)
lw v0,0xc8(sp)
mul.S f10,f26,f6
swc1 f26,0xb8(sp)
sw v0,0x348(sp)
mul.S f8,f4,f6
swc1 f4,0xbc(sp)
lw v0,0xcc(sp)
mul.S f12,f0,f6
swc1 f0,0xc0(sp)
lw t1,0xb8(sp)
mul.S f26,f26,f2
lw t0,0xbc(sp)
lw v1,0xc0(sp)
mul.S f4,f4,f2
sw v0,0x34c(sp)
sw t1,0x350(sp)
mul.S f0,f0,f2
sw t0,0x354(sp)
sw v1,0x358(sp)
madd.S f10,f10,f24,f2
madd.S f8,f8,f22,f2
madd.S f26,f26,f24,f6
madd.S f2,f12,f20,f2
madd.S f4,f4,f22,f6
swc1 f10,0x35c(sp)
madd.S f0,f0,f20,f6
swc1 f8,0x360(sp)
swc1 f26,0x368(sp)
swc1 f2,0x364(sp)
swc1 f4,0x36c(sp)
blez s3,0x00216aac
_swc1 f0,0x370(sp)
lw v0,-0x7f60(gp)
addiu a2,sp,0x464
addiu s7,sp,0x344
addu s3,s3,a2
lwc1 f14,-0x1e60(v0)
li a1,0x4
mov.S f8,f14
or a3,zero,zero
lwc1 f16,0x0(s4)
or a0,zero,zero
or v0,s7,zero
lwc1 f12,0x4(s4)
lwc1 f10,0x8(s4)
lwc1 f6,0x4(v0)
lwc1 f4,0x0(v0)
lwc1 f2,0x8(v0)
sub.S S f6,f12,f6
sub.S S f4,f16,f4
sub.S S f0,f10,f2
mul.S f6,f6,f6
madd.S f4,f6,f4,f4
madd.S f0,f4,f0,f0
c.lt.S f0,f8
bc1f 0x6,0x00216a90
_nop
mov.S f8,f0
or a3,a0,zero
addiu a0,a0,0x1
bne a0,a1,0x00216a58
_addiu v0,v0,0xc
sb a3,0x0(a2)
addiu a2,a2,0x1
bne s3,a2,0x00216a3c
_addiu s4,s4,0x10
addiu t2,sp,0x444
li a1,-0x1
li a2,0x3
b 0x00216ad8
_or a0,t2,zero
addiu s2,s2,0x4
addu v0,a3,v0
addiu a0,a0,0x1
lbu v0,-0x84(v0)
beq s1,s2,0x00216af4
_sb v0,-0x1(a0)
lw v0,0x0(s2)
bne v0,a1,0x00216ac0
_addiu a3,sp,0x4e8
addiu s2,s2,0x4
sb a2,0x0(a0)
bne s1,s2,0x00216ad8
_addiu a0,a0,0x1
lw t9,-0x7cec(gp)
or a0,s8,zero
lw a1,0xc4(sp)
lw a2,0xc8(sp)
lw a3,0xcc(sp)
addiu t9,t9,0x28dc
sw t2,0x1c(sp)
sw t1,0x10(sp)
sw t0,0x14(sp)
bal 0x002128dc
_sw v1,0x18(sp)
lw gp,0x28(sp)
lw s7,0x18(s8)
lw a1,0x74(sp)
slt v1,a1,s7
bne v1,zero,0x00216164
_lw v0,0x1c(s8)
lw v1,0x78(sp)
sw v1,0x70(sp)
slt v1,v1,v0
bne v1,zero,0x00216150
_lw v1,0x70(sp)
lw v0,0xb4(sp)
lw v1,0x4e4(sp)
lw v0,0x0(v0)
bne v1,v0,0x002179f8
_lw t9,-0x784c(gp)
lw ra,0x50c(sp)
lw s8,0x508(sp)
lw s7,0x504(sp)
lw s6,0x500(sp)
lw s5,0x4fc(sp)
lw s4,0x4f8(sp)
lw s3,0x4f4(sp)
lw s2,0x4f0(sp)
lw s1,0x4ec(sp)
lw s0,0x4e8(sp)
ldc1 f30,0x538(sp)
ldc1 f28,0x530(sp)
ldc1 f26,0x528(sp)
ldc1 f24,0x520(sp)
ldc1 f22,0x518(sp)
ldc1 f20,0x510(sp)
jr ra
_addiu sp,sp,0x540
sll v0,v1,0x4
sw v1,0x0(t0)
addiu v1,sp,0x4e8
addu v1,v1,v0
lwc1 f2,-0x298(v1)
add.S f0,f2,f0
b 0x002164d0
_swc1 f0,-0x298(v1)
lw v0,0x2d0(s8)
lw v1,0x34(v0)
beq v1,zero,0x00216c54
_nop
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,a3,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x00216c04
_or v0,zero,zero
mtc1 zero,f2
c.le.S f0,f2
bc1f 0x1,0x00216c6c
_nop
or a0,zero,zero
b 0x002162cc
_or s1,zero,zero
sub.D D f0,f0,f18
trunc.w.D f0,f0
mfc1 a1,f0
b 0x00216410
_or a1,a1,s3
sub.D D f0,f0,f18
trunc.w.D f0,f0
mfc1 v1,f0
b 0x00216394
_or v1,v1,a1
sub.D D f0,f0,f30
trunc.w.D f0,f0
mfc1 v1,f0
b 0x00216324
_or v1,v1,a1
li v0,0xff
li a0,0xff
b 0x002162cc
_li s7,0xff
b 0x002164e8
_or s3,s0,zero
cvt.d.S f0,f0
div.D f0,f0,f16
c.le.D f14,f0
bc1t 0x2,0x00216c58
_li v0,0xff
add.D f0,f0,f10
c.le.D f12,f0
bc1t 0x3,0x00216ce0
_lui v0,0x8000
trunc.w.D f0,f0
mfc1 a0,f0
andi a0,a0,0xff
sltu v0,a0,s1
sltu v1,s7,a0
movn s1,a0,v0
or v0,a0,zero
beq a0,zero,0x00216cc4
_movn s7,a0,v1
li v1,0xff
sltu a1,a0,s2
bne a0,v1,0x00216ccc
_movn s2,a0,a1
b 0x002162cc
_or v0,a0,zero
lw a1,0x64(sp)
sltu v1,a1,a0
movn a1,a0,v1
b 0x002162cc
_sw a1,0x64(sp)
sub.D D f0,f0,f12
trunc.w.D f0,f0
mfc1 a0,f0
b 0x00216c98
_or a0,a0,v0
li v0,0x4
b 0x00216198
_sw v0,0x5c(sp)
b 0x00216180
_sw v1,0x38(sp)
li a3,0xff
lw v1,-0x7fc8(gp)
or a0,zero,zero
lwc1 f2,0x248(sp)
li t3,-0x1
lw t2,-0x7fe4(gp)
or a2,zero,zero
lwc1 f8,-0xe34(v0)
li t4,0x1
lw v0,-0x7f60(gp)
lwc1 f10,-0x5a94(v1)
addiu t1,t2,-0x78d0
lwc1 f6,0x24c(sp)
lwc1 f4,0x244(sp)
lwc1 f0,-0x1e70(v0)
lw v0,-0x7f60(gp)
madd.S f12,f8,f2,f10
madd.S f6,f8,f6,f10
lwc1 f2,-0x1e6c(v0)
madd.S f4,f8,f4,f10
trunc.w.S f8,f12
trunc.w.S f6,f6
trunc.w.S f4,f4
mfc1 a1,f8
mfc1 v1,f6
sltiu t0,a1,0x100
movz a1,a3,t0
sltiu t0,v1,0x100
mfc1 v0,f4
movz v1,a3,t0
sltiu t0,v0,0x100
andi t6,a1,0xff
movz v0,a3,t0
sll t0,t6,0x1
andi t5,v1,0xff
sb v1,0x446(sp)
sll a3,t5,0x1
sb a1,0x445(sp)
addu t0,t0,t6
addu a3,a3,t5
andi v0,v0,0xff
sll t0,t0,0x1
sb v0,0x444(sp)
sll a3,a3,0x1
or v1,v0,zero
sll v0,v1,0x1
lw t8,0x4(t1)
sll t6,a2,0x1
lw t7,0x8(t1)
addu v0,v0,v1
lw a1,-0x78d0(t2)
addu v1,t6,a2
sll v0,v0,0x1
addu t8,t8,t0
addu t7,t7,a3
addu v0,a1,v0
addu t8,t8,v1
addu t7,t7,v1
addu v0,v0,v1
lbu t5,0x2(t8)
lbu a1,0x2(t7)
lbu v1,0x2(v0)
mult t5,t5
madd a1,a1
madd v1,v1
mflo v1
sltu a1,t3,v1
bne a1,zero,0x00216e9c
_nop
lbu a1,0x0(v0)
or t3,v1,zero
andi a0,t6,0xff
mtc1 a1,f4
cvt.s.W f4,f4
div.S f4,f4,f0
swc1 f4,0x168(sp)
lbu v1,0x0(t8)
mtc1 v1,f4
cvt.s.W f4,f4
div.S f4,f4,f2
swc1 f4,0x16c(sp)
lbu v1,0x0(t7)
mtc1 v1,f4
cvt.s.W f4,f4
div.S f4,f4,f0
swc1 f4,0x170(sp)
lbu v0,0x1(v0)
mtc1 v0,f4
cvt.s.W f4,f4
div.S f4,f4,f0
swc1 f4,0x178(sp)
lbu v0,0x1(t8)
mtc1 v0,f4
cvt.s.W f4,f4
div.S f4,f4,f2
swc1 f4,0x17c(sp)
lbu v0,0x1(t7)
mtc1 v0,f4
cvt.s.W f4,f4
div.S f4,f4,f0
swc1 f4,0x180(sp)
beq a2,t4,0x00216eac
_lbu v1,0x444(sp)
b 0x00216dbc
_li a2,0x1
addiu v0,sp,0x454
addiu t0,sp,0x464
sb a0,0x0(v0)
addiu v0,v0,0x1
bne t0,v0,0x00216eb4
_li a1,0x3
li a0,-0x1
b 0x00216ee8
_or v1,t0,zero
addiu s2,s2,0x4
addu v0,a2,v0
addiu v1,v1,0x1
lbu v0,-0x94(v0)
beq s1,s2,0x00216f04
_sb v0,-0x1(v1)
lw v0,0x0(s2)
bne v0,a0,0x00216ed0
_addiu a2,sp,0x4e8
addiu s2,s2,0x4
sb a1,0x0(v1)
bne s1,s2,0x00216ee8
_addiu v1,v1,0x1
lw v0,0x178(sp)
or a0,s8,zero
lw t9,-0x7cec(gp)
lw a1,0x168(sp)
lw a2,0x16c(sp)
lw a3,0x170(sp)
addiu t9,t9,0x28dc
sw v0,0x10(sp)
lw v0,0x17c(sp)
sw t0,0x1c(sp)
sw v0,0x14(sp)
lw v0,0x180(sp)
bal 0x002128dc
_sw v0,0x18(sp)
b 0x00216b24
_lw gp,0x28(sp)
lwc1 f0,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f2,-0x1e6c(v0)
madd.S f28,f0,f28,f2
mtc1 zero,f0
c.lt.S f30,f0
bc1f 0x1,0x002168e4
_lwc1 f0,-0x5a8c(s5)
mtc1 zero,f0
lw v0,-0x7fc4(gp)
c.lt.S f0,f12
bc1t 0x3,0x00216910
_lwc1 f30,-0xe34(v0)
lw t9,-0x742c(gp)
jalr t9
_nop
mov.S f12,f28
cvt.d.S f0,f0
cvt.s.D f26,f0
mtc1 zero,f0
c.lt.S f0,f28
bc1t 0x4,0x00216938
_lw gp,0x28(sp)
lw t9,-0x742c(gp)
jalr t9
_nop
mov.S f12,f30
cvt.d.S f0,f0
cvt.s.D f28,f0
mtc1 zero,f0
c.lt.S f0,f30
bc1t 0x5,0x00216960
_lw gp,0x28(sp)
lw t9,-0x742c(gp)
jalr t9
_nop
lw gp,0x28(sp)
b 0x00216974
_cvt.d.S f0,f0
lwc1 f12,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f0,-0x1e70(v0)
madd.S f12,f12,f26,f0
mtc1 zero,f0
c.lt.S f28,f0
bc1f 0x7,0x002168bc
_lwc1 f0,-0x5a8c(s5)
lw v0,-0x7fc4(gp)
b 0x002168d0
_lwc1 f28,-0xe34(v0)
lui v0,0x3554
addiu v0,v0,0x5844
beq s6,v0,0x00217964
_mtc1 zero,f20
or s0,zero,zero
or s3,zero,zero
swc1 f20,0xcc(sp)
swc1 f20,0xc8(sp)
swc1 f20,0xc4(sp)
swc1 f20,0xc0(sp)
swc1 f20,0xbc(sp)
swc1 f20,0xb8(sp)
mov.S f18,f20
mov.S f24,f20
mov.S f8,f20
mov.S f6,f20
b 0x0021663c
_mov.S f22,f20
lw t9,-0x742c(gp)
jalr t9
_nop
cvt.d.S f0,f0
lw gp,0x28(sp)
lw s7,-0x7f60(gp)
lw s0,-0x7f60(gp)
lwc1 f20,-0x1e54(s7)
cvt.s.D f0,f0
lwc1 f2,-0x1e50(s0)
mul.S f24,f24,f20
mul.S f20,f0,f20
mtc1 zero,f0
mul.S f22,f22,f2
swc1 f24,0xc4(sp)
swc1 f20,0xcc(sp)
c.lt.S f26,f0
bc1f 0x5,0x00216890
_swc1 f22,0xc8(sp)
lw v0,-0x7fc4(gp)
b 0x002168a8
_lwc1 f12,-0xe34(v0)
beq s0,zero,0x00216788
_lwc1 f28,0x248(sp)
slti v0,s3,0x2
lwc1 f12,0x244(sp)
lwc1 f30,0x24c(sp)
mul.S f8,f0,f28
swc1 f28,0xc8(sp)
swc1 f12,0xc4(sp)
swc1 f30,0xcc(sp)
swc1 f12,0xb8(sp)
madd.S f8,f8,f4,f12
swc1 f28,0xbc(sp)
swc1 f30,0xc0(sp)
bne v0,zero,0x00217984
_madd.S f8,f8,f2,f30
sll v1,s3,0x4
mov.S f24,f30
addiu v0,sp,0x254
addu v1,v1,s4
mov.S f26,f28
or a1,zero,zero
or a2,zero,zero
mfc1 t0,f12
or a3,zero,zero
or a0,zero,zero
mov.S f20,f30
mov.S f18,f12
b 0x00217154
_mov.S f22,f8
c.lt.S f22,f6
bc1f 0x3,0x00217148
_nop
mov.S f24,f16
li a1,0x1
li a2,0x1
mov.S f26,f14
li a3,0x1
mov.S f22,f6
mfc1 t0,f10
addiu v0,v0,0x10
beq v1,v0,0x00217194
_nop
lwc1 f14,0x4(v0)
lwc1 f10,0x0(v0)
lwc1 f16,0x8(v0)
mul.S f6,f0,f14
madd.S f6,f6,f4,f10
madd.S f6,f6,f2,f16
c.lt.S f6,f8
bc1f 0x2,0x00217120
_nop
addiu v0,v0,0x10
mov.S f20,f16
li a0,0x1
mov.S f28,f14
mov.S f18,f10
bne v1,v0,0x00217154
_mov.S f8,f6
bne a0,zero,0x00217a20
_nop
beq a3,zero,0x002171a8
_nop
sw t0,0xb8(sp)
beq a2,zero,0x002171b4
_nop
swc1 f26,0xbc(sp)
lwc1 f26,0xb8(sp)
lwc1 f28,0xbc(sp)
lwc1 f22,0xc8(sp)
beq a1,zero,0x002171d0
_lwc1 f0,0xcc(sp)
mov.S f30,f24
swc1 f24,0xc0(sp)
mtc1 zero,f2
c.lt.S f12,f2
bc1f 0x4,0x002179a0
_lwc1 f2,-0x5a8c(s5)
lw v0,-0x7fc4(gp)
lwc1 f12,-0xe34(v0)
mtc1 zero,f2
c.lt.S f22,f2
bc1f 0x6,0x002179c0
_lwc1 f2,-0x5a8c(s5)
mtc1 zero,f2
lw v0,-0x7fc4(gp)
c.lt.S f0,f2
bc1f 0x002167c4
_lwc1 f22,-0xe34(v0)
mtc1 zero,f0
lw v0,-0x7fc4(gp)
c.lt.S f0,f12
bc1t 0x2,0x002167f4
_lwc1 f20,-0xe34(v0)
lw t9,-0x742c(gp)
jalr t9
_nop
mov.S f12,f22
cvt.d.S f0,f0
cvt.s.D f24,f0
mtc1 zero,f0
c.lt.S f0,f22
bc1t 0x3,0x0021681c
_lw gp,0x28(sp)
lw t9,-0x742c(gp)
jalr t9
_nop
lw gp,0x28(sp)
b 0x00216830
_cvt.d.S f0,f0
addiu v1,sp,0xb8
lwc1 f12,-0x5a8c(s5)
addiu t1,sp,0x168
sw v1,0x7c(sp)
addiu v1,sp,0xc4
lwc1 f10,-0xe34(v0)
addiu v0,sp,0xe8
sw v1,0x80(sp)
addiu t0,sp,0x464
sw v0,0x88(sp)
addiu v0,sp,0xf8
sw t1,0x38(sp)
addiu s7,sp,0x344
sw v0,0x8c(sp)
or a1,s4,zero
lw v0,-0x7f60(gp)
or a0,s0,zero
lw v1,-0x7f60(gp)
addiu s5,sp,0x178
swc1 f4,0xd0(sp)
lwc1 f8,-0x1e44(v0)
addiu v0,sp,0x108
sw v0,0x90(sp)
addiu v0,sp,0x118
swc1 f0,0xd4(sp)
sw v0,0x5c(sp)
addiu v0,sp,0x128
swc1 f2,0xd8(sp)
sw v0,0x60(sp)
addiu v0,sp,0x138
swc1 f12,0xe8(sp)
sw v0,0x64(sp)
lw v0,-0x7f60(gp)
swc1 f12,0xec(sp)
lwc1 f16,-0x1e48(v0)
addiu v0,sp,0x148
sw v0,0x68(sp)
addiu v0,sp,0x158
swc1 f12,0xf0(sp)
sw v0,0x6c(sp)
lw v0,-0x7f60(gp)
swc1 f12,0xf4(sp)
lwc1 f14,-0x1e4c(v0)
lw v0,-0x7f60(gp)
swc1 f10,0x124(sp)
lwc1 f6,-0x1e38(v0)
lw v0,-0x7cec(gp)
swc1 f10,0x120(sp)
addiu t9,v0,0x2674
swc1 f10,0x11c(sp)
lw v0,-0x7f60(gp)
sw t9,0xac(sp)
swc1 f10,0x118(sp)
swc1 f8,0x144(sp)
swc1 f8,0x140(sp)
swc1 f8,0x13c(sp)
swc1 f8,0x138(sp)
sw t1,0x18(sp)
lwc1 f0,-0x1e40(v1)
lw v1,-0x7f60(gp)
lw t1,0xd8(sp)
lw a2,0xd0(sp)
lwc1 f4,-0x1e6c(v1)
lw a3,0xd4(sp)
sw t0,0x1c(sp)
sw t0,0xb0(sp)
swc1 f0,0x134(sp)
sw t1,0x10(sp)
lwc1 f0,-0x1e3c(v0)
lw v0,-0x7f60(gp)
swc1 f16,0x130(sp)
sw zero,0x20(sp)
lwc1 f2,-0x1e70(v0)
lw v0,-0x7f60(gp)
swc1 f16,0x12c(sp)
sw s7,0x14(sp)
swc1 f0,0x164(sp)
sw zero,0x104(sp)
lwc1 f0,-0x1e54(v0)
sw zero,0x114(sp)
sw zero,0x168(sp)
sw zero,0x16c(sp)
lw v0,-0x7f60(gp)
swc1 f16,0x128(sp)
swc1 f14,0x160(sp)
swc1 f14,0x15c(sp)
swc1 f14,0x158(sp)
swc1 f6,0x154(sp)
swc1 f6,0x150(sp)
swc1 f6,0x14c(sp)
swc1 f6,0x148(sp)
swc1 f2,0xf8(sp)
swc1 f4,0xfc(sp)
swc1 f2,0x100(sp)
sw zero,0x170(sp)
lwc1 f2,-0x1e50(v0)
sw zero,0x174(sp)
swc1 f0,0x108(sp)
swc1 f0,0x110(sp)
bal 0x00212674
_swc1 f2,0x10c(sp)
or t4,zero,zero
lw gp,0x28(sp)
or t1,zero,zero
lw t0,0xb0(sp)
or t2,zero,zero
or t3,zero,zero
sw s1,0x98(sp)
or t5,zero,zero
sw s2,0x9c(sp)
lw v0,-0x7f60(gp)
or s1,t3,zero
sw s3,0xa0(sp)
or s2,t2,zero
sw s8,0xa4(sp)
or s3,t1,zero
lwc1 f20,-0x1e60(v0)
or s8,t0,zero
lw v0,-0x7ce8(gp)
sw s6,0xa8(sp)
or s6,t4,zero
sw s4,0xb0(sp)
or s4,t5,zero
addiu v0,v0,-0x7df4
sw v0,0x94(sp)
lw t9,-0x7774(gp)
jalr t9
_li a0,0x7
or a3,zero,zero
lw v0,0x7c(sp)
or a2,v1,zero
lw gp,0x28(sp)
or a1,s5,zero
lw a0,0x94(sp)
sw v0,0x184(sp)
lw v0,0x80(sp)
lw t9,-0x7718(gp)
swc1 f20,0x1ac(sp)
sw v0,0x180(sp)
lw v0,0x88(sp)
sw s4,0x1b0(sp)
sw s1,0x1b4(sp)
sw v0,0x17c(sp)
lw v0,0x8c(sp)
sw s2,0x1b8(sp)
sw s3,0x1bc(sp)
sw v0,0x188(sp)
lw v0,0x90(sp)
sw s6,0x1c0(sp)
sw s0,0x178(sp)
sw v0,0x18c(sp)
lw v0,0x5c(sp)
sw s7,0x198(sp)
sw v0,0x190(sp)
lw v0,0x60(sp)
sw v0,0x194(sp)
lw v0,0x64(sp)
sw v0,0x19c(sp)
lw v0,0x68(sp)
sw v0,0x1a0(sp)
lw v0,0x6c(sp)
sw v0,0x1a4(sp)
lw v0,0x38(sp)
jalr t9
_sw v0,0x1a8(sp)
lw s4,0x1b0(sp)
lw gp,0x28(sp)
lwc1 f20,0x1ac(sp)
lw s1,0x1b4(sp)
lw s2,0x1b8(sp)
bne s6,s4,0x00217588
_lw s3,0x1bc(sp)
addiu s6,s6,0x1
li v1,0x8
beq s6,v1,0x002178a0
_lwc1 f0,0xc0(sp)
or a0,s0,zero
lw v0,0x38(sp)
lwc1 f4,0xcc(sp)
lw a1,0xb0(sp)
lwc1 f2,0xc8(sp)
lw t9,0xac(sp)
lwc1 f6,0xc4(sp)
sw v0,0x18(sp)
sw s6,0x20(sp)
sw s8,0x1c(sp)
sub.S S f4,f0,f4
lwc1 f0,0xbc(sp)
sw s7,0x14(sp)
sub.S S f2,f0,f2
lwc1 f0,0xb8(sp)
swc1 f4,0xe4(sp)
lw v0,0xe4(sp)
sw v0,0x10(sp)
sub.S S f0,f0,f6
swc1 f2,0xe0(sp)
lw a3,0xe0(sp)
swc1 f0,0xdc(sp)
jalr t9
_lw a2,0xdc(sp)
bne v0,zero,0x00217454
_lw gp,0x28(sp)
or t3,s1,zero
lw s6,0xa8(sp)
or t2,s2,zero
lw s1,0x98(sp)
or t1,s3,zero
lw s2,0x9c(sp)
or t0,s8,zero
lw s3,0xa0(sp)
lw s8,0xa4(sp)
or t5,s4,zero
sll s5,t5,0x4
blez t3,0x002175dc
_addu t0,t0,s5
addu a0,t3,t0
or v0,t0,zero
lbu v1,0x0(v0)
addiu a1,sp,0x4e8
addiu v0,v0,0x1
addu v1,a1,v1
bne a0,v0,0x002175c4
_sb zero,-0x94(v1)
slt v0,t3,t2
beq v0,zero,0x00217610
_slt v0,t2,t1
addu t3,t0,t3
addu a0,t0,t2
li v1,0x2
lbu v0,0x0(t3)
addiu a1,sp,0x4e8
addiu t3,t3,0x1
addu v0,a1,v0
bne a0,t3,0x002175f4
_sb v1,-0x94(v0)
slt v0,t2,t1
beq v0,zero,0x00217638
_addu a0,t0,t1
addu t2,t0,t2
li v1,0x3
lbu v0,0x0(t2)
addiu a1,sp,0x4e8
addiu t2,t2,0x1
addu v0,a1,v0
bne a0,t2,0x00217620
_sb v1,-0x94(v0)
slt v0,t1,s3
beq v0,zero,0x00217668
_nop
addu t1,t0,t1
li v1,0x1
addu t0,t0,s3
lbu v0,0x0(t1)
addiu a0,sp,0x4e8
addiu t1,t1,0x1
addu v0,a0,v0
bne t0,t1,0x00217650
_sb v1,-0x94(v0)
addiu t2,sp,0x444
li a0,-0x1
li a1,0x3
b 0x00217694
_or v1,t2,zero
addiu s2,s2,0x4
addu v0,a2,v0
addiu v1,v1,0x1
lbu v0,-0x94(v0)
beq s1,s2,0x002176b0
_sb v0,-0x1(v1)
lw v0,0x0(s2)
bne v0,a0,0x0021767c
_addiu a2,sp,0x4e8
addiu s2,s2,0x4
sb a1,0x0(v1)
bne s1,s2,0x00217694
_addiu v1,v1,0x1
lw t1,0xb8(sp)
lw t0,0xbc(sp)
b 0x00216af4
_lw v1,0xc0(sp)
lw v0,-0x7f60(gp)
b 0x00216900
_lwc1 f30,-0x1e68(v0)
lw v0,-0x7f60(gp)
b 0x002167e4
_lwc1 f20,-0x1e68(v0)
lw v1,0x64(sp)
lw a0,0x38(sp)
sltu v0,v1,a0
bne v0,zero,0x00217928
_subu v0,v1,a0
sltiu v0,v0,0x5
bne v0,zero,0x00217934
_lw a1,0x38(sp)
lw t9,-0x7cec(gp)
addiu s5,sp,0x454
lw a0,0x38(sp)
li a2,0x5
lw a3,0x60(sp)
addiu t9,t9,0x2574
lw a1,0x64(sp)
sw t4,0x68(sp)
sw t9,0x5c(sp)
bal 0x00212574
_sw s5,0x10(sp)
lw t4,0x68(sp)
or v1,v0,zero
sltu a0,s7,t4
bne a0,zero,0x002178dc
_lw t9,0x5c(sp)
subu v0,s7,t4
sltiu v0,v0,0x7
bne v0,zero,0x002178d8
_nop
addiu t0,sp,0x464
lw a3,0x60(sp)
li a2,0x7
sw v1,0x6c(sp)
sw t0,0x10(sp)
or a1,s7,zero
sw t0,0x68(sp)
or a0,t4,zero
jalr t9
_sw t4,0x5c(sp)
lw v1,0x6c(sp)
lw gp,0x28(sp)
sltu v0,v0,v1
beq v0,zero,0x002178cc
_lw t0,0x68(sp)
addiu a1,sp,0x474
lw t4,0x5c(sp)
li a3,0x1
li t1,0x9
li a2,0x1
or v0,t0,zero
b 0x002177b4
_or a0,s5,zero
sb a2,0x0(a0)
addiu v0,v0,0x1
beq a1,v0,0x002177d8
_addiu a0,a0,0x1
lbu v1,0x0(v0)
beq v1,zero,0x002177a4
_nop
beq v1,a3,0x00217898
_subu v1,t1,v1
addiu v0,v0,0x1
sb v1,0x0(a0)
bne a1,v0,0x002177b4
_addiu a0,a0,0x1
lw t9,-0x78d4(gp)
or a0,s8,zero
sw t0,0x5c(sp)
andi a1,s7,0xff
jalr t9
_sw t4,0x38(sp)
or a0,s8,zero
lw gp,0x28(sp)
lw t4,0x38(sp)
lw t9,-0x78d4(gp)
jalr t9
_andi a1,t4,0xff
or a2,s5,zero
lw gp,0x28(sp)
li s5,0x18
lw t0,0x5c(sp)
or v0,zero,zero
or s7,zero,zero
or a0,a2,zero
lbu v1,0x0(a0)
addiu a0,a0,0x1
sllv v1,v1,v0
addiu v0,v0,0x3
bne v0,s5,0x00217824
_or s7,s7,v1
addiu a2,a2,0x8
lw t9,-0x78d4(gp)
sw t0,0x5c(sp)
or a0,s8,zero
sw a2,0x38(sp)
jalr t9
_andi a1,s7,0xff
ext a1,s7,0x8,0x8
lw gp,0x28(sp)
lw t9,-0x78d4(gp)
jalr t9
_or a0,s8,zero
ext a1,s7,0x10,0x8
lw gp,0x28(sp)
lw t9,-0x78d4(gp)
jalr t9
_or a0,s8,zero
lw a2,0x38(sp)
lw t0,0x5c(sp)
bne t0,a2,0x00217818
_lw gp,0x28(sp)
b 0x0021654c
_li v0,0x1
b 0x002177a8
_sb zero,0x0(a0)
or t3,s1,zero
lw s6,0xa8(sp)
or t2,s2,zero
lw s1,0x98(sp)
or t1,s3,zero
lw s2,0x9c(sp)
or t0,s8,zero
lw s3,0xa0(sp)
lw s8,0xa4(sp)
b 0x002175b0
_li t5,0x7
lw t4,0x64(sp)
b 0x002177d8
_lw s7,0x38(sp)
or s7,t4,zero
addiu v0,s7,0x7
li a0,0xff
sltiu a1,v0,0x100
movz v0,a0,a1
subu a0,v0,s7
sltiu a0,a0,0x7
beq a0,zero,0x00217a34
_nop
addiu t4,v0,-0x7
b 0x00217748
_or s7,v0,zero
lw v1,0x78(sp)
lw v0,0x1c(s8)
sw v1,0x70(sp)
slt v1,v1,v0
bne v1,zero,0x00216150
_lw v1,0x70(sp)
b 0x00216b50
_lw v0,0xb4(sp)
lw v0,0x64(sp)
sw v0,0x38(sp)
lw a1,0x38(sp)
li v0,0xff
addiu v1,a1,0x5
or a0,v1,zero
sltiu v1,v1,0x100
movz a0,v0,v1
subu v0,a0,a1
sltiu v0,v0,0x5
beq v0,zero,0x002176f8
_sw a0,0x64(sp)
addiu v0,a0,-0x5
b 0x002176f8
_sw v0,0x38(sp)
li v0,0x5
sw zero,0x38(sp)
or s7,zero,zero
or s0,zero,zero
sw v0,0x64(sp)
li t4,0xff
b 0x002176f8
_or s3,zero,zero
mtc1 zero,f2
mov.S f0,f30
mov.S f22,f28
c.lt.S f12,f2
bc1t 0x4,0x002171e0
_mov.S f26,f12
lwc1 f2,-0x5a8c(s5)
c.lt.S f2,f12
bc1f 0x5,0x00217a08
_mtc1 zero,f2
lw v0,-0x7f60(gp)
c.lt.S f22,f2
bc1t 0x6,0x002171fc
_lwc1 f12,-0x1e68(v0)
lwc1 f2,-0x5a8c(s5)
c.lt.S f2,f22
bc1f 0x7,0x002167a4
_lw v0,-0x7fc4(gp)
lw v0,-0x7f60(gp)
b 0x002167b4
_lwc1 f22,-0x1e64(v0)
lw t9,-0x70b0(gp)
sw v0,0x68(sp)
jalr t9
_sw t4,0x5c(sp)
lw gp,0x28(sp)
lw v0,0x68(sp)
b 0x0021652c
_lw t4,0x5c(sp)
jalr t9
_nop
b 0x0021703c
_mtc1 zero,f20
lw v0,-0x7fc4(gp)
lwc1 f2,-0xe34(v0)
lw v0,-0x7f60(gp)
lwc1 f4,-0x1e70(v0)
b 0x002171e8
_madd.S f12,f2,f12,f4
mov.S f12,f18
swc1 f18,0xc4(sp)
swc1 f28,0xc8(sp)
b 0x0021719c
_swc1 f20,0xcc(sp)
or t4,s7,zero
b 0x00217748
_or s7,v0,zero
(translation_unit "void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}\n\n" (function_definition "void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" primitive_type (function_declarator "FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "float *pfVar8;" primitive_type (pointer_declarator "*pfVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "float *pfVar18;" primitive_type (pointer_declarator "*pfVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "float *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "float *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "float *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "float *pfVar22;" primitive_type (pointer_declarator "*pfVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "float fVar28;" primitive_type identifier ;) (declaration "float fVar29;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "float fVar30;" primitive_type identifier ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "float fVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "undefined8 uVar39;" type_identifier identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "float fVar44;" primitive_type identifier ;) (declaration "float fVar46;" primitive_type identifier ;) (declaration "ulonglong uVar45;" type_identifier identifier ;) (declaration "float fVar47;" primitive_type identifier ;) (declaration "float fVar48;" primitive_type identifier ;) (declaration "float fVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "uint uVar52;" type_identifier identifier ;) (declaration "undefined *local_50c;" type_identifier (pointer_declarator "*local_50c" * identifier) ;) (declaration "double local_508;" primitive_type identifier ;) (declaration "double local_500;" primitive_type identifier ;) (declaration "double local_4f8;" primitive_type identifier ;) (declaration "double local_4f0;" primitive_type identifier ;) (declaration "undefined *local_4e8;" type_identifier (pointer_declarator "*local_4e8" * identifier) ;) (declaration "int local_4e4;" primitive_type identifier ;) (declaration "uint local_4dc;" type_identifier identifier ;) (declaration "uint local_4d0;" type_identifier identifier ;) (declaration "uint local_4cc;" type_identifier identifier ;) (declaration "uint local_4c8;" type_identifier identifier ;) (declaration "float local_488;" primitive_type identifier ;) (declaration "float local_484;" primitive_type identifier ;) (declaration "float local_480;" primitive_type identifier ;) (declaration "float local_47c;" primitive_type identifier ;) (declaration "float local_478;" primitive_type identifier ;) (declaration "float local_474;" primitive_type identifier ;) (declaration "float local_470;" primitive_type identifier ;) (declaration "float local_46c;" primitive_type identifier ;) (declaration "float local_468;" primitive_type identifier ;) (declaration "float local_464;" primitive_type identifier ;) (declaration "float local_460;" primitive_type identifier ;) (declaration "float local_45c;" primitive_type identifier ;) (declaration "undefined4 local_458;" type_identifier identifier ;) (declaration "undefined4 local_454;" type_identifier identifier ;) (declaration "undefined4 local_450;" type_identifier identifier ;) (declaration "undefined4 local_44c;" type_identifier identifier ;) (declaration "undefined4 local_448;" type_identifier identifier ;) (declaration "undefined4 local_444;" type_identifier identifier ;) (declaration "undefined4 local_440;" type_identifier identifier ;) (declaration "undefined4 local_43c;" type_identifier identifier ;) (declaration "undefined4 local_438;" type_identifier identifier ;) (declaration "undefined4 local_434;" type_identifier identifier ;) (declaration "undefined4 local_430;" type_identifier identifier ;) (declaration "undefined4 local_42c;" type_identifier identifier ;) (declaration "undefined4 local_428;" type_identifier identifier ;) (declaration "undefined4 local_424;" type_identifier identifier ;) (declaration "undefined4 local_420;" type_identifier identifier ;) (declaration "undefined4 local_41c;" type_identifier identifier ;) (declaration "undefined4 local_418;" type_identifier identifier ;) (declaration "undefined4 local_414;" type_identifier identifier ;) (declaration "undefined4 local_410;" type_identifier identifier ;) (declaration "undefined4 local_40c;" type_identifier identifier ;) (declaration "undefined4 local_408;" type_identifier identifier ;) (declaration "undefined4 local_404;" type_identifier identifier ;) (declaration "undefined4 local_400;" type_identifier identifier ;) (declaration "undefined4 local_3fc;" type_identifier identifier ;) (declaration "undefined4 local_3f8;" type_identifier identifier ;) (declaration "undefined4 local_3f4;" type_identifier identifier ;) (declaration "undefined4 local_3f0;" type_identifier identifier ;) (declaration "undefined4 local_3ec;" type_identifier identifier ;) (declaration "undefined4 local_3e8;" type_identifier identifier ;) (declaration "undefined4 local_3e4;" type_identifier identifier ;) (declaration "undefined4 local_3e0;" type_identifier identifier ;) (declaration "undefined4 local_3dc;" type_identifier identifier ;) (declaration "float local_3d8;" primitive_type identifier ;) (declaration "float local_3d4;" primitive_type identifier ;) (declaration "float local_3d0;" primitive_type identifier ;) (declaration "undefined4 local_3cc;" type_identifier identifier ;) (declaration "byte *local_3c8;" type_identifier (pointer_declarator "*local_3c8" * identifier) ;) (declaration "undefined4 *local_3c4;" type_identifier (pointer_declarator "*local_3c4" * identifier) ;) (declaration "float *local_3c0;" primitive_type (pointer_declarator "*local_3c0" * identifier) ;) (declaration "float *local_3bc;" primitive_type (pointer_declarator "*local_3bc" * identifier) ;) (declaration "undefined4 *local_3b8;" type_identifier (pointer_declarator "*local_3b8" * identifier) ;) (declaration "undefined4 *local_3b4;" type_identifier (pointer_declarator "*local_3b4" * identifier) ;) (declaration "undefined4 *local_3b0;" type_identifier (pointer_declarator "*local_3b0" * identifier) ;) (declaration "undefined4 *local_3ac;" type_identifier (pointer_declarator "*local_3ac" * identifier) ;) (declaration "float *local_3a8;" primitive_type (pointer_declarator "*local_3a8" * identifier) ;) (declaration "undefined4 *local_3a4;" type_identifier (pointer_declarator "*local_3a4" * identifier) ;) (declaration "undefined4 *local_3a0;" type_identifier (pointer_declarator "*local_3a0" * identifier) ;) (declaration "undefined4 *local_39c;" type_identifier (pointer_declarator "*local_39c" * identifier) ;) (declaration "float *local_398;" primitive_type (pointer_declarator "*local_398" * identifier) ;) (declaration "uint local_394;" type_identifier identifier ;) (declaration "float *local_390;" primitive_type (pointer_declarator "*local_390" * identifier) ;) (declaration "int local_38c;" primitive_type identifier ;) (declaration "int local_388;" primitive_type identifier ;) (declaration "int local_384;" primitive_type identifier ;) (declaration "float *local_380;" primitive_type (pointer_declarator "*local_380" * identifier) ;) (declaration "uint local_37c [16];" type_identifier (array_declarator "local_37c [16]" identifier [ number_literal ]) ;) (declaration "float local_33c [16];" primitive_type (array_declarator "local_33c [16]" identifier [ number_literal ]) ;) (declaration "float local_2fc [64];" primitive_type (array_declarator "local_2fc [64]" identifier [ number_literal ]) ;) (declaration "float local_1fc;" primitive_type identifier ;) (declaration "float local_1f8;" primitive_type identifier ;) (declaration "float local_1f4;" primitive_type identifier ;) (declaration "float local_1f0;" primitive_type identifier ;) (declaration "float local_1ec;" primitive_type identifier ;) (declaration "float local_1e8;" primitive_type identifier ;) (declaration "float local_1e4;" primitive_type identifier ;) (declaration "float local_1e0;" primitive_type identifier ;) (declaration "float local_1dc;" primitive_type identifier ;) (declaration "float local_1d8;" primitive_type identifier ;) (declaration "float local_1d4;" primitive_type identifier ;) (declaration "float local_1d0;" primitive_type identifier ;) (declaration "byte local_fc [16];" type_identifier (array_declarator "local_fc [16]" identifier [ number_literal ]) ;) (declaration "byte local_ec [16];" type_identifier (array_declarator "local_ec [16]" identifier [ number_literal ]) ;) (declaration "byte local_dc [16];" type_identifier (array_declarator "local_dc [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_cc [112];" type_identifier (array_declarator "abStack_cc [112]" identifier [ number_literal ]) ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar4 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 < 1) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 < 1)" ( (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) (expression_statement "local_4d0 = 0;" (assignment_expression "local_4d0 = 0" identifier = number_literal) ;) (expression_statement "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "local_4f8 = *(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) ))))) ;) (labeled_statement "LAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" do (compound_statement "{\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  }" { (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_4c8 = local_4d0 + 4;" (assignment_expression "local_4c8 = local_4d0 + 4" identifier = (binary_expression "local_4d0 + 4" identifier + number_literal)) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_508._0_4_ < 1) goto LAB_00216b38;" if (parenthesized_expression "((int)local_508._0_4_ < 1)" ( (binary_expression "(int)local_508._0_4_ < 1" (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (goto_statement "goto LAB_00216b38;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" { (expression_statement "local_4cc = uVar23 + 4;" (assignment_expression "local_4cc = uVar23 + 4" identifier = (binary_expression "uVar23 + 4" identifier + number_literal)) ;) (if_statement "if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" if (parenthesized_expression "(local_4cc < local_508._0_4_)" ( (binary_expression "local_4cc < local_508._0_4_" identifier < (field_expression "local_508._0_4_" identifier . field_identifier)) )) (compound_statement "{\n        local_508._0_4_ = 4;\n      }" { (expression_statement "local_508._0_4_ = 4;" (assignment_expression "local_508._0_4_ = 4" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" else (compound_statement "{\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" { (expression_statement "local_508._0_4_ = local_508._0_4_ - uVar23;" (assignment_expression "local_508._0_4_ = local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) - identifier)) ;) }))) (if_statement "if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }" if (parenthesized_expression "(local_4c8 < uVar5)" ( (binary_expression "local_4c8 < uVar5" identifier < identifier) )) (compound_statement "{\n        local_4e4 = 4;\n      }" { (expression_statement "local_4e4 = 4;" (assignment_expression "local_4e4 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        local_4e4 = uVar5 - local_4d0;\n      }" else (compound_statement "{\n        local_4e4 = uVar5 - local_4d0;\n      }" { (expression_statement "local_4e4 = uVar5 - local_4d0;" (assignment_expression "local_4e4 = uVar5 - local_4d0" identifier = (binary_expression "uVar5 - local_4d0" identifier - identifier)) ;) }))) (expression_statement "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);" (assignment_expression "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" identifier = (call_expression "(*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" (parenthesized_expression "(*(code *)PTR_GetVirtualPixels_003a9764)" ( (pointer_expression "*(code *)PTR_GetVirtualPixels_003a9764" * (cast_expression "(code *)PTR_GetVirtualPixels_003a9764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" ( identifier , identifier , identifier , (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , 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) ;) (expression_statement "puVar9 = PTR_LAB_003a88e0;" (assignment_expression "puVar9 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = local_33c;" (assignment_expression "unaff_s2 = local_33c" identifier = identifier) ;) (expression_statement "unaff_s4 = local_2fc;" (assignment_expression "unaff_s4 = local_2fc" identifier = identifier) ;) (expression_statement "puVar7 = local_37c;" (assignment_expression "puVar7 = local_37c" identifier = identifier) ;) (expression_statement "unaff_s1 = unaff_s2;" (assignment_expression "unaff_s1 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);" do (compound_statement "{\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "*unaff_s1 = -NAN;" (assignment_expression "*unaff_s1 = -NAN" (pointer_expression "*unaff_s1" * identifier) = (unary_expression "-NAN" - identifier)) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = 0xffffffff;" (assignment_expression "*puVar7 = 0xffffffff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != unaff_s1)" ( (binary_expression "unaff_s4 != unaff_s1" identifier != identifier) )) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" if (parenthesized_expression "(local_4e4 < 1)" ( (binary_expression "local_4e4 < 1" identifier < number_literal) )) (compound_statement "{\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }" { (if_statement "if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" if (parenthesized_expression "(param_2 != 0x35545844)" ( (binary_expression "param_2 != 0x35545844" identifier != number_literal) )) (compound_statement "{\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" { (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" identifier = number_literal) ;) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" identifier = number_literal) ;) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" identifier = number_literal) ;) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" identifier = number_literal) ;) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" identifier = number_literal) ;) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" identifier = number_literal) ;) (expression_statement "unaff_s3 = (byte *)0x0;" (assignment_expression "unaff_s3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;) })) (expression_statement "local_508._0_4_ = 0;" (assignment_expression "local_508._0_4_ = 0" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "local_4dc = 5;" (assignment_expression "local_4dc = 5" identifier = number_literal) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_002176f8:\n        pbVar11 = local_ec;" statement_identifier : (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" identifier = identifier) ;)) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2574)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2574" identifier + number_literal) )))) ;) (expression_statement "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);" (assignment_expression "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" identifier = (call_expression "FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" identifier (argument_list "(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" ( (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "uVar20 = uVar23;" (assignment_expression "uVar20 = uVar23" identifier = identifier) ;) (if_statement "if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" if (parenthesized_expression "((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7))" ( (binary_expression "(uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)" (parenthesized_expression "(uVar23 < uVar5)" ( (binary_expression "uVar23 < uVar5" identifier < identifier) )) || (parenthesized_expression "(uVar20 = uVar5, uVar23 - uVar5 < 7)" ( (comma_expression "uVar20 = uVar5, uVar23 - uVar5 < 7" (assignment_expression "uVar20 = uVar5" identifier = identifier) , (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" { (expression_statement "uVar5 = uVar20;" (assignment_expression "uVar5 = uVar20" identifier = identifier) ;) (expression_statement "uVar23 = uVar5 + 7;" (assignment_expression "uVar23 = uVar5 + 7" identifier = (binary_expression "uVar5 + 7" identifier + number_literal)) ;) (if_statement "if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }" if (parenthesized_expression "(0xff < uVar23)" ( (binary_expression "0xff < uVar23" number_literal < identifier) )) (compound_statement "{\n            uVar23 = 0xff;\n          }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }" if (parenthesized_expression "(uVar23 - uVar5 < 7)" ( (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" identifier - identifier) < number_literal) )) (compound_statement "{\n            uVar5 = uVar23 - 7;\n          }" { (expression_statement "uVar5 = uVar23 - 7;" (assignment_expression "uVar5 = uVar23 - 7" identifier = (binary_expression "uVar23 - 7" identifier - number_literal)) ;) })) })) (expression_statement "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);" (assignment_expression "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" identifier = (call_expression "(*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar5,uVar23,7,local_37c,local_dc)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" if (parenthesized_expression "(uVar20 < uVar12)" ( (binary_expression "uVar20 < uVar12" identifier < identifier) )) (compound_statement "{\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" { (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar11;" (assignment_expression "pbVar24 = pbVar11" identifier = identifier) ;) (do_statement "do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);" do (compound_statement "{\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          }" { (while_statement "while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" while (parenthesized_expression "(bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0)" ( (comma_expression "bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) , (comma_expression "local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_508._0_4_ = uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) , (comma_expression "local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_4dc = uVar5" identifier = identifier) , (binary_expression "bVar1 == 0" identifier == number_literal)))) )) (compound_statement "{\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" { (expression_statement "*pbVar24 = 1;" (assignment_expression "*pbVar24 = 1" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (labeled_statement "LAB_002177a8:\n              pbVar10 = pbVar10 + 1;" statement_identifier : (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;)) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (if_statement "if (abStack_cc == pbVar10) goto LAB_002177d8;" if (parenthesized_expression "(abStack_cc == pbVar10)" ( (binary_expression "abStack_cc == pbVar10" identifier == identifier) )) (goto_statement "goto LAB_002177d8;" goto statement_identifier ;)) })) (if_statement "if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" { (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (goto_statement "goto LAB_002177a8;" goto statement_identifier ;) })) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar24 = 9 - bVar1;" (assignment_expression "*pbVar24 = 9 - bVar1" (pointer_expression "*pbVar24" * identifier) = (binary_expression "9 - bVar1" number_literal - identifier)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(abStack_cc != pbVar10)" ( (binary_expression "abStack_cc != pbVar10" identifier != identifier) )) ;) })) (labeled_statement "LAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" statement_identifier : (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_508._0_4_ & 0xff)" ( identifier , (binary_expression "local_508._0_4_ & 0xff" (field_expression "local_508._0_4_" identifier . field_identifier) & number_literal) ))) ;)) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_4dc & 0xff)" ( identifier , (binary_expression "local_4dc & 0xff" identifier & number_literal) ))) ;) (do_statement "do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);" do (compound_statement "{\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (do_statement "do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);" do (compound_statement "{\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = uVar5 & 0x1f;" (assignment_expression "uVar20 = uVar5 & 0x1f" identifier = (binary_expression "uVar5 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar5 = uVar5 + 3;" (assignment_expression "uVar5 = uVar5 + 3" identifier = (binary_expression "uVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 | (uint)bVar1 << uVar20;" (assignment_expression "uVar23 = uVar23 | (uint)bVar1 << uVar20" identifier = (binary_expression "uVar23 | (uint)bVar1 << uVar20" identifier | (binary_expression "(uint)bVar1 << uVar20" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << identifier))) ;) }) while (parenthesized_expression "(uVar5 != 0x18)" ( (binary_expression "uVar5 != 0x18" identifier != number_literal) )) ;) (expression_statement "pbVar11 = pbVar11 + 8;" (assignment_expression "pbVar11 = pbVar11 + 8" identifier = (binary_expression "pbVar11 + 8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar23 & 0xff)" ( identifier , (binary_expression "uVar23 & 0xff" identifier & number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(uVar23 << 0x10) >> 0x18)" ( identifier , (binary_expression "(uVar23 << 0x10) >> 0x18" (parenthesized_expression "(uVar23 << 0x10)" ( (binary_expression "uVar23 << 0x10" identifier << number_literal) )) >> number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(uVar23 << 8) >> 0x18)" ( identifier , (binary_expression "(uVar23 << 8) >> 0x18" (parenthesized_expression "(uVar23 << 8)" ( (binary_expression "uVar23 << 8" identifier << number_literal) )) >> number_literal) ))) ;) }) while (parenthesized_expression "(local_dc != pbVar11)" ( (binary_expression "local_dc != pbVar11" identifier != identifier) )) ;) }) (else_clause "else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" else (compound_statement "{\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar51 = *(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) ))))) ;) (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = 0;" (assignment_expression "local_4dc = 0" identifier = number_literal) ;) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e5c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e5c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e5c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e5c" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = unaff_s2;" (assignment_expression "pfVar22 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);" do (compound_statement "{\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        }" { (if_statement "if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" if (parenthesized_expression "(0 < (int)local_508._0_4_)" ( (binary_expression "0 < (int)local_508._0_4_" number_literal < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (compound_statement "{\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" { (expression_statement "dVar36 = *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar36 = *(double *)(puVar9 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar9 + 0x1400)" * (cast_expression "(double *)(puVar9 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1400)" ( (binary_expression "puVar9 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar42 = *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar42 = *(double *)(local_50c + -0x5af0)" identifier = (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar38 = *(double *)(puVar9 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(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)) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar14 = *(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 "dVar40 = *(double *)(local_4e8 + -0x5ae8);" (assignment_expression "dVar40 = *(double *)(local_4e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = local_37c + iVar26 * 4;" (assignment_expression "puVar7 = local_37c + iVar26 * 4" identifier = (binary_expression "local_37c + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal))) ;) (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" identifier = identifier) ;) (expression_statement "pfVar18 = pfVar22;" (assignment_expression "pfVar18 = pfVar22" identifier = identifier) ;) (do_statement "do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);" do (compound_statement "{\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            }" { (if_statement "if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }" if (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (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) )) (compound_statement "{\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }" { (labeled_statement "LAB_00216c58:\n                  uVar12 = 0xff;" statement_identifier : (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;)) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" { (expression_statement "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (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)) ))))) ;) (if_statement "if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar43 <= 0.0)" ( (binary_expression "fVar43 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" { (expression_statement "dVar27 = (double)fVar43 / dVar42;" (assignment_expression "dVar27 = (double)fVar43 / dVar42" identifier = (binary_expression "(double)fVar43 / dVar42" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar40 <= dVar27) goto LAB_00216c58;" if (parenthesized_expression "(dVar40 <= dVar27)" ( (binary_expression "dVar40 <= dVar27" identifier <= identifier) )) (goto_statement "goto LAB_00216c58;" goto statement_identifier ;)) (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" identifier = (binary_expression "dVar27 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }" if (parenthesized_expression "(dVar38 <= dVar27)" ( (binary_expression "dVar38 <= dVar27" identifier <= identifier) )) (compound_statement "{\n                      dVar27 = dVar27 - dVar38;\n                    }" { (expression_statement "dVar27 = dVar27 - dVar38;" (assignment_expression "dVar27 = dVar27 - dVar38" identifier = (binary_expression "dVar27 - dVar38" identifier - identifier)) ;) })) (expression_statement "uVar12 = (int)dVar27 & 0xff;" (assignment_expression "uVar12 = (int)dVar27 & 0xff" identifier = (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) (if_statement "if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }" if (parenthesized_expression "(uVar12 < uVar5)" ( (binary_expression "uVar12 < uVar5" identifier < identifier) )) (compound_statement "{\n                      uVar5 = uVar12;\n                    }" { (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" identifier = identifier) ;) })) (if_statement "if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }" if (parenthesized_expression "(uVar23 < uVar12)" ( (binary_expression "uVar23 < uVar12" identifier < identifier) )) (compound_statement "{\n                      uVar23 = uVar12;\n                    }" { (expression_statement "uVar23 = uVar12;" (assignment_expression "uVar23 = uVar12" identifier = identifier) ;) })) (if_statement "if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" { (if_statement "if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }" if (parenthesized_expression "(uVar12 < uVar20)" ( (binary_expression "uVar12 < uVar20" identifier < identifier) )) (compound_statement "{\n                        uVar20 = uVar12;\n                      }" { (expression_statement "uVar20 = uVar12;" (assignment_expression "uVar20 = uVar12" identifier = identifier) ;) })) (if_statement "if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }" if (parenthesized_expression "((uVar12 != 0xff) && (local_4dc < uVar12))" ( (binary_expression "(uVar12 != 0xff) && (local_4dc < uVar12)" (parenthesized_expression "(uVar12 != 0xff)" ( (binary_expression "uVar12 != 0xff" identifier != number_literal) )) && (parenthesized_expression "(local_4dc < uVar12)" ( (binary_expression "local_4dc < uVar12" identifier < identifier) ))) )) (compound_statement "{\n                        local_4dc = uVar12;\n                      }" { (expression_statement "local_4dc = uVar12;" (assignment_expression "local_4dc = uVar12" identifier = identifier) ;) })) })) }))) }))) }) (else_clause "else {\n                uVar12 = 0xff;\n              }" else (compound_statement "{\n                uVar12 = 0xff;\n              }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }))) (expression_statement "*puVar7 = uVar12;" (assignment_expression "*puVar7 = uVar12" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (if_statement "if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" if (parenthesized_expression "((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40))" ( (binary_expression "(0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) && (parenthesized_expression "(dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" ( (comma_expression "dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "dVar27 = (double)fVar29 / dVar42" identifier = (binary_expression "(double)fVar29 / dVar42" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) , (comma_expression "fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "fVar43 = fVar28" identifier = identifier) , (binary_expression "dVar27 < dVar40" identifier < identifier))) ))) )) (compound_statement "{\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" { (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" identifier = (binary_expression "dVar27 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }" if (parenthesized_expression "(dVar51 <= dVar27)" ( (binary_expression "dVar51 <= dVar27" identifier <= identifier) )) (compound_statement "{\n                  dVar27 = dVar27 - dVar51;\n                }" { (expression_statement "dVar27 = dVar27 - dVar51;" (assignment_expression "dVar27 = dVar27 - dVar51" identifier = (binary_expression "dVar27 - dVar51" identifier - identifier)) ;) })) (expression_statement "fVar43 = (float)((int)dVar27 & 0xff) / fVar49;" (assignment_expression "fVar43 = (float)((int)dVar27 & 0xff) / fVar49" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / fVar49" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / identifier)) ;) })) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 4" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar27 = (double)fVar29 / local_500;" (assignment_expression "dVar27 = (double)fVar29 / local_500" identifier = (binary_expression "(double)fVar29 / local_500" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (expression_statement "fVar34 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar34 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar27 < local_4f8)" ( (binary_expression "dVar27 < local_4f8" identifier < identifier) )) (compound_statement "{\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar27 = dVar27 + dVar50;" (assignment_expression "dVar27 = dVar27 + dVar50" identifier = (binary_expression "dVar27 + dVar50" identifier + identifier)) ;) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" ( (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" { (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" identifier = (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 4" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0)" identifier = (binary_expression "(double)fVar29 / *(double *)(local_50c + -0x5af0)" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "fVar48 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar48 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar27 < *(double *)(local_4e8 + -0x5ae8))" ( (binary_expression "dVar27 < *(double *)(local_4e8 + -0x5ae8)" identifier < (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400)" identifier = (binary_expression "dVar27 + *(double *)(puVar9 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar9 + 0x1400)" * (cast_expression "(double *)(puVar9 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1400)" ( (binary_expression "puVar9 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" ( (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" { (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" identifier = (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar29 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar29 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" { (expression_statement "fVar29 = (float)(uVar12 + 1) * fVar47;" (assignment_expression "fVar29 = (float)(uVar12 + 1) * fVar47" identifier = (binary_expression "(float)(uVar12 + 1) * fVar47" (cast_expression "(float)(uVar12 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar12 + 1)" ( (binary_expression "uVar12 + 1" identifier + number_literal) ))) * identifier)) ;) })) (expression_statement "iVar16 = iVar16 + iVar19;" (assignment_expression "iVar16 = iVar16 + iVar19" identifier = (binary_expression "iVar16 + iVar19" identifier + identifier)) ;) (if_statement "if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" { (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pfVar8 = unaff_s4;" (assignment_expression "pfVar8 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);" do (compound_statement "{\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                }" { (if_statement "if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" if (parenthesized_expression "((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844))))" ( (binary_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))" (parenthesized_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48))" ( (binary_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)" (parenthesized_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34))" ( (binary_expression "(*pfVar8 == fVar43) && (pfVar8[1] == fVar34)" (parenthesized_expression "(*pfVar8 == fVar43)" ( (binary_expression "*pfVar8 == fVar43" (pointer_expression "*pfVar8" * identifier) == identifier) )) && (parenthesized_expression "(pfVar8[1] == fVar34)" ( (binary_expression "pfVar8[1] == fVar34" (subscript_expression "pfVar8[1]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(pfVar8[2] == fVar48)" ( (binary_expression "pfVar8[2] == fVar48" (subscript_expression "pfVar8[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(((char)uVar12 < '\0' || (param_2 == 0x35545844)))" ( (parenthesized_expression "((char)uVar12 < '\0' || (param_2 == 0x35545844))" ( (binary_expression "(char)uVar12 < '\0' || (param_2 == 0x35545844)" (binary_expression "(char)uVar12 < '\0'" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" { (expression_statement "*pfVar18 = (float)pbVar11;" (assignment_expression "*pfVar18 = (float)pbVar11" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)pbVar11" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;" (assignment_expression "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" identifier [ (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (binary_expression "local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" identifier [ (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) + identifier)) ;) (goto_statement "goto LAB_002164d0;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + 4;" (assignment_expression "pfVar8 = pfVar8 + 4" identifier = (binary_expression "pfVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar11 != unaff_s0)" ( (binary_expression "pbVar11 != unaff_s0" identifier != identifier) )) ;) })) (expression_statement "*pfVar18 = (float)unaff_s0;" (assignment_expression "*pfVar18 = (float)unaff_s0" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)unaff_s0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4] = fVar43;" (assignment_expression "local_2fc[(int)unaff_s0 * 4] = fVar43" (subscript_expression "local_2fc[(int)unaff_s0 * 4]" identifier [ (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 1]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 1" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 2]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 2" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 3]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 3" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_002164d0:\n              pfVar18 = pfVar18 + 1;" statement_identifier : (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" identifier = (binary_expression "pfVar18 + 1" identifier + number_literal)) ;)) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 + local_508._0_4_ != pfVar18)" ( (binary_expression "pfVar22 + local_508._0_4_ != pfVar18" (binary_expression "pfVar22 + local_508._0_4_" identifier + (field_expression "local_508._0_4_" identifier . field_identifier)) != identifier) )) ;) (expression_statement "iVar6 = iVar19 * local_508._0_4_ + iVar6;" (assignment_expression "iVar6 = iVar19 * local_508._0_4_ + iVar6" identifier = (binary_expression "iVar19 * local_508._0_4_ + iVar6" (binary_expression "iVar19 * local_508._0_4_" identifier * (field_expression "local_508._0_4_" identifier . field_identifier)) + identifier)) ;) })) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar26 != local_4e4)" ( (binary_expression "iVar26 != local_4e4" identifier != identifier) )) ;) (if_statement "if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" { (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "pfVar18 = local_2fc + 3;" (assignment_expression "pfVar18 = local_2fc + 3" identifier = (binary_expression "local_2fc + 3" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar18 + (int)unaff_s0 * 4;" (assignment_expression "pfVar22 = pfVar18 + (int)unaff_s0 * 4" identifier = (binary_expression "pfVar18 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);" do (compound_statement "{\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          }" { (expression_statement "fVar28 = SQRT(*pfVar18);" (assignment_expression "fVar28 = SQRT(*pfVar18)" identifier = (call_expression "SQRT(*pfVar18)" identifier (argument_list "(*pfVar18)" ( (pointer_expression "*pfVar18" * identifier) )))) ;) (if_statement "if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" if (parenthesized_expression "(*pfVar18 < (float)uVar39)" ( (binary_expression "*pfVar18 < (float)uVar39" (pointer_expression "*pfVar18" * identifier) < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" { (expression_statement "(*(code *)PTR_sqrtf_003a9800)();" (call_expression "(*(code *)PTR_sqrtf_003a9800)()" (parenthesized_expression "(*(code *)PTR_sqrtf_003a9800)" ( (pointer_expression "*(code *)PTR_sqrtf_003a9800" * (cast_expression "(code *)PTR_sqrtf_003a9800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*pfVar18 = fVar28;" (assignment_expression "*pfVar18 = fVar28" (pointer_expression "*pfVar18" * identifier) = identifier) ;) (expression_statement "pfVar18 = pfVar18 + 4;" (assignment_expression "pfVar18 = pfVar18 + 4" identifier = (binary_expression "pfVar18 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 != pfVar18)" ( (binary_expression "pfVar22 != pfVar18" identifier != identifier) )) ;) })) (if_statement "if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" if (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" { (expression_statement "local_508._0_4_ = local_4dc;" (assignment_expression "local_508._0_4_ = local_4dc" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" if (parenthesized_expression "((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5))" ( (binary_expression "(local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" (parenthesized_expression "(local_4dc < uVar20)" ( (binary_expression "local_4dc < uVar20" identifier < identifier) )) || (parenthesized_expression "(local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" ( (comma_expression "local_508._0_4_ = uVar20, local_4dc - uVar20 < 5" (assignment_expression "local_508._0_4_ = uVar20" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) , (binary_expression "local_4dc - uVar20 < 5" (binary_expression "local_4dc - uVar20" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" { (expression_statement "local_4dc = local_508._0_4_ + 5;" (assignment_expression "local_4dc = local_508._0_4_ + 5" identifier = (binary_expression "local_508._0_4_ + 5" (field_expression "local_508._0_4_" identifier . field_identifier) + number_literal)) ;) (if_statement "if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }" if (parenthesized_expression "(0xff < local_4dc)" ( (binary_expression "0xff < local_4dc" number_literal < identifier) )) (compound_statement "{\n              local_4dc = 0xff;\n            }" { (expression_statement "local_4dc = 0xff;" (assignment_expression "local_4dc = 0xff" identifier = number_literal) ;) })) (if_statement "if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }" if (parenthesized_expression "(local_4dc - local_508._0_4_ < 5)" ( (binary_expression "local_4dc - local_508._0_4_ < 5" (binary_expression "local_4dc - local_508._0_4_" identifier - (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n              local_508._0_4_ = local_4dc - 5;\n            }" { (expression_statement "local_508._0_4_ = local_4dc - 5;" (assignment_expression "local_508._0_4_ = local_4dc - 5" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_4dc - 5" identifier - number_literal)) ;) })) })) (goto_statement "goto LAB_002176f8;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s3 = unaff_s0;" (assignment_expression "unaff_s3 = unaff_s0" identifier = identifier) ;) (if_statement "if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" if (parenthesized_expression "(unaff_s0 != (byte *)0x1)" ( (binary_expression "unaff_s0 != (byte *)0x1" identifier != (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" { (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" identifier = number_literal) ;) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" identifier = number_literal) ;) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" identifier = number_literal) ;) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" identifier = number_literal) ;) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" identifier = number_literal) ;) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" identifier = number_literal) ;) (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;)) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" identifier = number_literal) ;) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" identifier = number_literal) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);" do (compound_statement "{\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        }" { (expression_statement "fVar29 = pfVar22[3];" (assignment_expression "fVar29 = pfVar22[3]" identifier = (subscript_expression "pfVar22[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar28 = fVar28 + fVar29;" (assignment_expression "fVar28 = fVar28 + fVar29" identifier = (binary_expression "fVar28 + fVar29" identifier + identifier)) ;) (expression_statement "fVar43 = fVar29 * *pfVar22 + fVar43;" (assignment_expression "fVar43 = fVar29 * *pfVar22 + fVar43" identifier = (binary_expression "fVar29 * *pfVar22 + fVar43" (binary_expression "fVar29 * *pfVar22" identifier * (pointer_expression "*pfVar22" * identifier)) + identifier)) ;) (expression_statement "fVar49 = fVar29 * pfVar22[1] + fVar49;" (assignment_expression "fVar49 = fVar29 * pfVar22[1] + fVar49" identifier = (binary_expression "fVar29 * pfVar22[1] + fVar49" (binary_expression "fVar29 * pfVar22[1]" identifier * (subscript_expression "pfVar22[1]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "fVar47 = fVar29 * pfVar22[2] + fVar47;" (assignment_expression "fVar47 = fVar29 * pfVar22[2] + fVar47" identifier = (binary_expression "fVar29 * pfVar22[2] + fVar47" (binary_expression "fVar29 * pfVar22[2]" identifier * (subscript_expression "pfVar22[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 != pfVar18)" ( (binary_expression "unaff_s4 + (int)unaff_s0 * 4 != pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (if_statement "if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" if (parenthesized_expression "(*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28)" ( (binary_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28" (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e58)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e58)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e58" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" { (expression_statement "fVar43 = fVar43 / fVar28;" (assignment_expression "fVar43 = fVar43 / fVar28" identifier = (binary_expression "fVar43 / fVar28" identifier / identifier)) ;) (expression_statement "fVar49 = fVar49 / fVar28;" (assignment_expression "fVar49 = fVar49 / fVar28" identifier = (binary_expression "fVar49 / fVar28" identifier / identifier)) ;) (expression_statement "fVar47 = fVar47 / fVar28;" (assignment_expression "fVar47 = fVar47 / fVar28" identifier = (binary_expression "fVar47 / fVar28" identifier / identifier)) ;) })) (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" identifier = number_literal) ;) (expression_statement "fVar44 = 0.0;" (assignment_expression "fVar44 = 0.0" identifier = number_literal) ;) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" identifier = number_literal) ;) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" identifier = number_literal) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );" do (compound_statement "{\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        }" { (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar32 = *pfVar22 - fVar43;" (assignment_expression "fVar32 = *pfVar22 - fVar43" identifier = (binary_expression "*pfVar22 - fVar43" (pointer_expression "*pfVar22" * identifier) - identifier)) ;) (expression_statement "fVar30 = pfVar22[3];" (assignment_expression "fVar30 = pfVar22[3]" identifier = (subscript_expression "pfVar22[3]" identifier [ number_literal ])) ;) (expression_statement "fVar33 = pfVar22[1] - fVar49;" (assignment_expression "fVar33 = pfVar22[1] - fVar49" identifier = (binary_expression "pfVar22[1] - fVar49" (subscript_expression "pfVar22[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "fVar31 = (pfVar22[2] - fVar47) * fVar30;" (assignment_expression "fVar31 = (pfVar22[2] - fVar47) * fVar30" identifier = (binary_expression "(pfVar22[2] - fVar47) * fVar30" (parenthesized_expression "(pfVar22[2] - fVar47)" ( (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" identifier [ number_literal ]) - identifier) )) * identifier)) ;) (expression_statement "fVar29 = fVar32 * fVar30 * fVar32 + fVar29;" (assignment_expression "fVar29 = fVar32 * fVar30 * fVar32 + fVar29" identifier = (binary_expression "fVar32 * fVar30 * fVar32 + fVar29" (binary_expression "fVar32 * fVar30 * fVar32" (binary_expression "fVar32 * fVar30" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar34 = fVar32 * fVar33 * fVar30 + fVar34;" (assignment_expression "fVar34 = fVar32 * fVar33 * fVar30 + fVar34" identifier = (binary_expression "fVar32 * fVar33 * fVar30 + fVar34" (binary_expression "fVar32 * fVar33 * fVar30" (binary_expression "fVar32 * fVar33" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar28 = fVar32 * fVar31 + fVar28;" (assignment_expression "fVar28 = fVar32 * fVar31 + fVar28" identifier = (binary_expression "fVar32 * fVar31 + fVar28" (binary_expression "fVar32 * fVar31" identifier * identifier) + identifier)) ;) (expression_statement "fVar48 = fVar33 * fVar33 * fVar30 + fVar48;" (assignment_expression "fVar48 = fVar33 * fVar33 * fVar30 + fVar48" identifier = (binary_expression "fVar33 * fVar33 * fVar30 + fVar48" (binary_expression "fVar33 * fVar33 * fVar30" (binary_expression "fVar33 * fVar33" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar44 = fVar33 * fVar31 + fVar44;" (assignment_expression "fVar44 = fVar33 * fVar31 + fVar44" identifier = (binary_expression "fVar33 * fVar31 + fVar44" (binary_expression "fVar33 * fVar31" identifier * identifier) + identifier)) ;) (expression_statement "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;" (assignment_expression "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46" identifier = (binary_expression "(pfVar22[2] - fVar47) * fVar31 + fVar46" (binary_expression "(pfVar22[2] - fVar47) * fVar31" (parenthesized_expression "(pfVar22[2] - fVar47)" ( (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" identifier [ number_literal ]) - identifier) )) * identifier) + identifier)) ;) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" identifier = identifier) ;) (if_statement "if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;" if (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 == pfVar18)" ( (binary_expression "unaff_s4 + (int)unaff_s0 * 4 == pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) == identifier) )) (goto_statement "goto LAB_0021663c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);" (assignment_expression "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[1] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[1] * fVar49 + fVar47)" ( (binary_expression "local_2fc[1] * fVar49 + fVar47" (binary_expression "local_2fc[1] * fVar49" (subscript_expression "local_2fc[1]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (expression_statement "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);" (assignment_expression "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[2] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[2] * fVar49 + fVar47)" ( (binary_expression "local_2fc[2] * fVar49 + fVar47" (binary_expression "local_2fc[2] * fVar49" (subscript_expression "local_2fc[2]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (expression_statement "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);" (assignment_expression "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[0] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[0] * fVar49 + fVar47)" ( (binary_expression "local_2fc[0] * fVar49 + fVar47" (binary_expression "local_2fc[0] * fVar49" (subscript_expression "local_2fc[0]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (if_statement "if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar12)" ( (binary_expression "0xff < uVar12" number_literal < identifier) )) (compound_statement "{\n        uVar12 = 0xff;\n      }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar20)" ( (binary_expression "0xff < uVar20" number_literal < identifier) )) (compound_statement "{\n        uVar20 = 0xff;\n      }" { (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar23)" ( (binary_expression "0xff < uVar23" number_literal < identifier) )) (compound_statement "{\n        uVar23 = 0xff;\n      }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_fc[2] = (char)uVar20;" (assignment_expression "local_fc[2] = (char)uVar20" (subscript_expression "local_fc[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_fc[1] = (char)uVar12;" (assignment_expression "local_fc[1] = (char)uVar12" (subscript_expression "local_fc[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_fc[0] = (byte)uVar23;" (assignment_expression "local_fc[0] = (byte)uVar23" (subscript_expression "local_fc[0]" identifier [ number_literal ]) = (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" { (expression_statement "iVar16 = iVar26 * 3;" (assignment_expression "iVar16 = iVar26 * 3" identifier = (binary_expression "iVar26 * 3" identifier * number_literal)) ;) (expression_statement "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x78cc" identifier + number_literal) )))) + (binary_expression "(uVar12 & 0xff) * 6" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78c8)" ( (binary_expression "PTR_DAT_003a88cc + -0x78c8" identifier + number_literal) )))) + (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" ( (binary_expression "uVar20 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x78d0" identifier + number_literal) )))) + (binary_expression "(uVar23 & 0xff) * 6" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];" (assignment_expression "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" identifier = (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2]" (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ]))) + (binary_expression "(uint)pbVar10[2] * (uint)pbVar10[2]" (cast_expression "(uint)pbVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])))) + (binary_expression "(uint)pbVar11[2] * (uint)pbVar11[2]" (cast_expression "(uint)pbVar11[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar11[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ]))))) ;) (if_statement "if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" if (parenthesized_expression "(uVar52 <= uVar5)" ( (binary_expression "uVar52 <= uVar5" identifier <= identifier) )) (compound_statement "{\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" { (expression_statement "local_3d8 = (float)*pbVar11 / fVar28;" (assignment_expression "local_3d8 = (float)*pbVar11 / fVar28" identifier = (binary_expression "(float)*pbVar11 / fVar28" (cast_expression "(float)*pbVar11" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) / identifier)) ;) (expression_statement "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier = (binary_expression "(float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)*pbVar24" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar24" * identifier)) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) )))))) ;) (expression_statement "local_3d0 = (float)*pbVar10 / fVar28;" (assignment_expression "local_3d0 = (float)*pbVar10 / fVar28" identifier = (binary_expression "(float)*pbVar10 / fVar28" (cast_expression "(float)*pbVar10" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar10" * identifier)) / identifier)) ;) (expression_statement "local_3c8 = (byte *)((float)pbVar11[1] / fVar28);" (assignment_expression "local_3c8 = (byte *)((float)pbVar11[1] / fVar28)" identifier = (cast_expression "(byte *)((float)pbVar11[1] / fVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar11[1] / fVar28)" ( (binary_expression "(float)pbVar11[1] / fVar28" (cast_expression "(float)pbVar11[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar11[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));" (assignment_expression "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" identifier = (cast_expression "(undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" ( (binary_expression "(float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)pbVar24[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) )))) ;) (expression_statement "local_3c0 = (float *)((float)pbVar10[1] / fVar28);" (assignment_expression "local_3c0 = (float *)((float)pbVar10[1] / fVar28)" identifier = (cast_expression "(float *)((float)pbVar10[1] / fVar28)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar10[1] / fVar28)" ( (binary_expression "(float)pbVar10[1] / fVar28" (cast_expression "(float)pbVar10[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "iVar6 = iVar26 * 2;" (assignment_expression "iVar6 = iVar26 * 2" identifier = (binary_expression "iVar26 * 2" identifier * number_literal)) ;) (expression_statement "uVar5 = uVar52;" (assignment_expression "uVar5 = uVar52" identifier = identifier) ;) })) (if_statement "if (iVar26 == 1) break;" if (parenthesized_expression "(iVar26 == 1)" ( (binary_expression "iVar26 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) })) (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" identifier = identifier) ;) (do_statement "do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);" do (compound_statement "{\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      }" { (expression_statement "*pbVar11 = (byte)iVar6;" (assignment_expression "*pbVar11 = (byte)iVar6" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)iVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" identifier = identifier) ;) }) while (parenthesized_expression "(local_dc != pbVar11)" ( (binary_expression "local_dc != pbVar11" identifier != identifier) )) ;) (do_statement "do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);" do (compound_statement "{\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      }" { (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" while (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" ( (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" identifier = identifier) , (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" * identifier) != (unary_expression "-NAN" - identifier))) )) (compound_statement "{\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" { (expression_statement "*pbVar10 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar10 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar10" * identifier) = (subscript_expression "local_ec[(int)*pfVar21]" identifier [ (cast_expression "(int)*pfVar21" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) ])) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;" if (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" ( (binary_expression "unaff_s1 == pfVar21 + 1" identifier == (binary_expression "pfVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00216f04;" goto statement_identifier ;)) })) (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" ( (binary_expression "unaff_s1 != pfVar21 + 1" identifier != (binary_expression "pfVar21 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_00216f04:\n      unaff_s2 = pfVar21 + 1;" statement_identifier : (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;)) (expression_statement "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);" (call_expression "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" identifier (argument_list "(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (while_statement "while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" { (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = local_4cc;" (assignment_expression "uVar23 = local_4cc" identifier = identifier) ;) (if_statement "if ((int)local_4cc < (int)local_508._0_4_) break;" if (parenthesized_expression "((int)local_4cc < (int)local_508._0_4_)" ( (binary_expression "(int)local_4cc < (int)local_508._0_4_" (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00216b38:\n        local_4d0 = local_4c8;" statement_identifier : (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;)) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;" if (parenthesized_expression "((int)local_4c8 < (int)uVar5)" ( (binary_expression "(int)local_4c8 < (int)uVar5" (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216150;" goto statement_identifier ;)) (labeled_statement "LAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }" statement_identifier : (if_statement "if (local_5c == *(int *)puVar4) {\n          return;\n        }" if (parenthesized_expression "(local_5c == *(int *)puVar4)" ( (binary_expression "local_5c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021703c:\n        fVar46 = 0.0;" statement_identifier : (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" identifier = number_literal) ;)) (expression_statement "param_2 = unaff_s6;" (assignment_expression "param_2 = unaff_s6" identifier = identifier) ;) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" identifier = identifier) ;) (expression_statement "fVar28 = fVar46;" (assignment_expression "fVar28 = fVar46" identifier = identifier) ;) (expression_statement "fVar29 = fVar46;" (assignment_expression "fVar29 = fVar46" identifier = identifier) ;) (expression_statement "fVar34 = fVar46;" (assignment_expression "fVar34 = fVar46" identifier = identifier) ;) (expression_statement "fVar48 = fVar46;" (assignment_expression "fVar48 = fVar46" identifier = identifier) ;) (expression_statement "fVar44 = fVar46;" (assignment_expression "fVar44 = fVar46" identifier = identifier) ;) (labeled_statement "LAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" statement_identifier : (expression_statement "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;)) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" identifier = identifier) ;) (expression_statement "fVar49 = fVar43;" (assignment_expression "fVar49 = fVar43" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);" do (compound_statement "{\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        }" { (while_statement "while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" { (expression_statement "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;" (assignment_expression "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" identifier = (binary_expression "fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" (binary_expression "fVar44 * fVar43 + fVar34 * fVar49" (binary_expression "fVar44 * fVar43" identifier * identifier) + (binary_expression "fVar34 * fVar49" identifier * identifier)) + (binary_expression "fVar48 * fVar47" identifier * identifier))) ;) (expression_statement "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;" (assignment_expression "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" identifier = (binary_expression "fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" (binary_expression "fVar46 * fVar43 + fVar28 * fVar49" (binary_expression "fVar46 * fVar43" identifier * identifier) + (binary_expression "fVar28 * fVar49" identifier * identifier)) + (binary_expression "fVar44 * fVar47" identifier * identifier))) ;) (expression_statement "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;" (assignment_expression "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" identifier = (binary_expression "fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" (binary_expression "fVar28 * fVar43 + fVar29 * fVar49" (binary_expression "fVar28 * fVar43" identifier * identifier) + (binary_expression "fVar29 * fVar49" identifier * identifier)) + (binary_expression "fVar34 * fVar47" identifier * identifier))) ;) (if_statement "if (fVar30 <= fVar31) break;" if (parenthesized_expression "(fVar30 <= fVar31)" ( (binary_expression "fVar30 <= fVar31" identifier <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar49 <= fVar30) goto LAB_0021668c;" if (parenthesized_expression "(fVar49 <= fVar30)" ( (binary_expression "fVar49 <= fVar30" identifier <= identifier) )) (goto_statement "goto LAB_0021668c;" goto statement_identifier ;)) (labeled_statement "LAB_00216720:\n            local_508 = (double)fVar49;" statement_identifier : (expression_statement "local_508 = (double)fVar49;" (assignment_expression "local_508 = (double)fVar49" identifier = (cast_expression "(double)fVar49" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (fVar49 < 0.0) goto LAB_00216730;" if (parenthesized_expression "(fVar49 < 0.0)" ( (binary_expression "fVar49 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00216730;" goto statement_identifier ;)) (labeled_statement "LAB_002166ac:\n            dVar36 = dVar51;" statement_identifier : (expression_statement "dVar36 = dVar51;" (assignment_expression "dVar36 = dVar51" identifier = identifier) ;)) (if_statement "if (dVar50 <= local_508) goto LAB_002166c4;" if (parenthesized_expression "(dVar50 <= local_508)" ( (binary_expression "dVar50 <= local_508" identifier <= identifier) )) (goto_statement "goto LAB_002166c4;" goto statement_identifier ;)) (labeled_statement "LAB_00216758:\n            iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar43 = (float)(dVar36 / dVar50);" (assignment_expression "fVar43 = (float)(dVar36 / dVar50)" identifier = (cast_expression "(float)(dVar36 / dVar50)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar36 / dVar50)" ( (binary_expression "dVar36 / dVar50" identifier / identifier) )))) ;) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" identifier = (binary_expression "fVar49 * fVar43" identifier * identifier)) ;) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" identifier = (binary_expression "fVar30 * fVar43" identifier * identifier)) ;) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" identifier = (binary_expression "fVar31 * fVar43" identifier * identifier)) ;) (if_statement "if (iVar6 == 0) goto LAB_00216774;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00216774;" goto statement_identifier ;)) })) (if_statement "if (fVar31 < fVar49) goto LAB_00216720;" if (parenthesized_expression "(fVar31 < fVar49)" ( (binary_expression "fVar31 < fVar49" identifier < identifier) )) (goto_statement "goto LAB_00216720;" goto statement_identifier ;)) (labeled_statement "LAB_0021668c:\n          fVar47 = fVar30;" statement_identifier : (expression_statement "fVar47 = fVar30;" (assignment_expression "fVar47 = fVar30" identifier = identifier) ;)) (if_statement "if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }" if (parenthesized_expression "(fVar30 <= fVar31)" ( (binary_expression "fVar30 <= fVar31" identifier <= identifier) )) (compound_statement "{\n            fVar47 = fVar31;\n          }" { (expression_statement "fVar47 = fVar31;" (assignment_expression "fVar47 = fVar31" identifier = identifier) ;) })) (expression_statement "local_508 = (double)fVar47;" (assignment_expression "local_508 = (double)fVar47" identifier = (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= fVar47) goto LAB_002166ac;" if (parenthesized_expression "(0.0 <= fVar47)" ( (binary_expression "0.0 <= fVar47" number_literal <= identifier) )) (goto_statement "goto LAB_002166ac;" goto statement_identifier ;)) (labeled_statement "LAB_00216730:\n          local_4f0 = -local_508;" statement_identifier : (expression_statement "local_4f0 = -local_508;" (assignment_expression "local_4f0 = -local_508" identifier = (unary_expression "-local_508" - identifier)) ;)) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a78" identifier + number_literal) ))))) ;) (if_statement "if (local_4f0 < dVar50) goto LAB_00216758;" if (parenthesized_expression "(local_4f0 < dVar50)" ( (binary_expression "local_4f0 < dVar50" identifier < identifier) )) (goto_statement "goto LAB_00216758;" goto statement_identifier ;)) (labeled_statement "LAB_002166c4:\n          iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar43 = (float)(dVar51 / local_508);" (assignment_expression "fVar43 = (float)(dVar51 / local_508)" identifier = (cast_expression "(float)(dVar51 / local_508)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar51 / local_508)" ( (binary_expression "dVar51 / local_508" identifier / identifier) )))) ;) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" identifier = (binary_expression "fVar49 * fVar43" identifier * identifier)) ;) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" identifier = (binary_expression "fVar30 * fVar43" identifier * identifier)) ;) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" identifier = (binary_expression "fVar31 * fVar43" identifier * identifier)) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar51 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar51 >> 0x20)" ( (binary_expression "(ulonglong)dVar51 >> 0x20" (cast_expression "(ulonglong)dVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (if_statement "if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }" { (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_00216788;" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00216788;" goto statement_identifier ;)) (expression_statement "local_478 = local_2fc[1];" (assignment_expression "local_478 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "local_47c = local_2fc[0];" (assignment_expression "local_47c = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "local_474 = local_2fc[2];" (assignment_expression "local_474 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "local_488 = local_2fc[0];" (assignment_expression "local_488 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "local_484 = local_2fc[1];" (assignment_expression "local_484 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "local_480 = local_2fc[2];" (assignment_expression "local_480 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];" (assignment_expression "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" identifier = (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0]" (binary_expression "fVar43 * local_2fc[2]" identifier * (subscript_expression "local_2fc[2]" identifier [ number_literal ])) + (binary_expression "fVar49 * local_2fc[0]" identifier * (subscript_expression "local_2fc[0]" identifier [ number_literal ]))) + (binary_expression "fVar47 * local_2fc[1]" identifier * (subscript_expression "local_2fc[1]" identifier [ number_literal ])))) ;) (if_statement "if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" if (parenthesized_expression "((int)unaff_s3 < 2)" ( (binary_expression "(int)unaff_s3 < 2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" { (if_statement "if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" if (parenthesized_expression "(0.0 <= local_2fc[0])" ( (binary_expression "0.0 <= local_2fc[0]" number_literal <= (subscript_expression "local_2fc[0]" identifier [ number_literal ])) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002179a0;" goto statement_identifier ;) })) (labeled_statement "LAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;)) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" if (parenthesized_expression "(0.0 <= local_478)" ( (binary_expression "0.0 <= local_478" number_literal <= identifier) )) (compound_statement "{\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" { (labeled_statement "LAB_002179c0:\n              fVar29 = local_474;" statement_identifier : (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;)) (expression_statement "fVar34 = local_478;" (assignment_expression "fVar34 = local_478" identifier = identifier) ;) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" identifier = identifier) ;) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" identifier = identifier) ;) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" identifier = identifier) ;) (if_statement "if (local_478 <= fVar28) goto LAB_002167a4;" if (parenthesized_expression "(local_478 <= fVar28)" ( (binary_expression "local_478 <= fVar28" identifier <= identifier) )) (goto_statement "goto LAB_002167a4;" goto statement_identifier ;)) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002167b4;" goto statement_identifier ;) })) }) (else_clause "else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" else (compound_statement "{\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" { (expression_statement "pfVar22 = local_2fc + 4;" (assignment_expression "pfVar22 = local_2fc + 4" identifier = (binary_expression "local_2fc + 4" identifier + number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "fVar29 = local_2fc[0];" (assignment_expression "fVar29 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "fVar34 = fVar28;" (assignment_expression "fVar34 = fVar28" identifier = identifier) ;) (expression_statement "fVar48 = local_2fc[2];" (assignment_expression "fVar48 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar44 = local_2fc[1];" (assignment_expression "fVar44 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "fVar46 = local_2fc[2];" (assignment_expression "fVar46 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar30 = local_2fc[0];" (assignment_expression "fVar30 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "fVar31 = local_2fc[1];" (assignment_expression "fVar31 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (do_statement "do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);" do (compound_statement "{\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            }" { (while_statement "while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" { (expression_statement "fVar41 = pfVar22[1];" (assignment_expression "fVar41 = pfVar22[1]" identifier = (subscript_expression "pfVar22[1]" identifier [ number_literal ])) ;) (expression_statement "fVar33 = *pfVar22;" (assignment_expression "fVar33 = *pfVar22" identifier = (pointer_expression "*pfVar22" * identifier)) ;) (expression_statement "fVar32 = pfVar22[2];" (assignment_expression "fVar32 = pfVar22[2]" identifier = (subscript_expression "pfVar22[2]" identifier [ number_literal ])) ;) (expression_statement "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;" (assignment_expression "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" identifier = (binary_expression "fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" (binary_expression "fVar43 * fVar32 + fVar49 * fVar33" (binary_expression "fVar43 * fVar32" identifier * identifier) + (binary_expression "fVar49 * fVar33" identifier * identifier)) + (binary_expression "fVar47 * fVar41" identifier * identifier))) ;) (if_statement "if (fVar35 < fVar34) break;" if (parenthesized_expression "(fVar35 < fVar34)" ( (binary_expression "fVar35 < fVar34" identifier < identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" if (parenthesized_expression "(fVar28 < fVar35)" ( (binary_expression "fVar28 < fVar35" identifier < identifier) )) (compound_statement "{\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (expression_statement "fVar29 = fVar33;" (assignment_expression "fVar29 = fVar33" identifier = identifier) ;) (expression_statement "fVar48 = fVar32;" (assignment_expression "fVar48 = fVar32" identifier = identifier) ;) (expression_statement "fVar44 = fVar41;" (assignment_expression "fVar44 = fVar41" identifier = identifier) ;) (expression_statement "fVar28 = fVar35;" (assignment_expression "fVar28 = fVar35" identifier = identifier) ;) })) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar32 = fVar46;" (assignment_expression "fVar32 = fVar46" identifier = identifier) ;) (expression_statement "fVar33 = fVar30;" (assignment_expression "fVar33 = fVar30" identifier = identifier) ;) (expression_statement "fVar41 = fVar31;" (assignment_expression "fVar41 = fVar31" identifier = identifier) ;) (if_statement "if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;" if (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 == pfVar22)" ( (binary_expression "pfVar21 + (int)unaff_s3 * 4 == pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) == identifier) )) (goto_statement "goto LAB_00217194;" goto statement_identifier ;)) })) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "fVar34 = fVar35;" (assignment_expression "fVar34 = fVar35" identifier = identifier) ;) (expression_statement "fVar46 = fVar32;" (assignment_expression "fVar46 = fVar32" identifier = identifier) ;) (expression_statement "fVar30 = fVar33;" (assignment_expression "fVar30 = fVar33" identifier = identifier) ;) (expression_statement "fVar31 = fVar41;" (assignment_expression "fVar31 = fVar41" identifier = identifier) ;) }) while (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 != pfVar22)" ( (binary_expression "pfVar21 + (int)unaff_s3 * 4 != pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (labeled_statement "LAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" statement_identifier : (if_statement "if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" { (expression_statement "local_47c = fVar33;" (assignment_expression "local_47c = fVar33" identifier = identifier) ;) (expression_statement "local_478 = fVar41;" (assignment_expression "local_478 = fVar41" identifier = identifier) ;) (expression_statement "local_474 = fVar32;" (assignment_expression "local_474 = fVar32" identifier = identifier) ;) }))) (if_statement "if (bVar17) {\n              local_488 = fVar29;\n            }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\n              local_488 = fVar29;\n            }" { (expression_statement "local_488 = fVar29;" (assignment_expression "local_488 = fVar29" identifier = identifier) ;) })) (if_statement "if (bVar15) {\n              local_484 = fVar44;\n            }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n              local_484 = fVar44;\n            }" { (expression_statement "local_484 = fVar44;" (assignment_expression "local_484 = fVar44" identifier = identifier) ;) })) (if_statement "if (bVar2) {\n              local_480 = fVar48;\n            }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n              local_480 = fVar48;\n            }" { (expression_statement "local_480 = fVar48;" (assignment_expression "local_480 = fVar48" identifier = identifier) ;) })) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (local_47c < 0.0) goto LAB_002171e0;" if (parenthesized_expression "(local_47c < 0.0)" ( (binary_expression "local_47c < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_002171e0;" goto statement_identifier ;)) (labeled_statement "LAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" statement_identifier : (if_statement "if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" if (parenthesized_expression "(local_47c <= fVar28)" ( (binary_expression "local_47c <= fVar28" identifier <= identifier) )) (compound_statement "{\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" { (expression_statement "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (goto_statement "goto LAB_002171e8;" goto statement_identifier ;) }))) (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (if_statement "if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" if (parenthesized_expression "(0.0 <= local_478)" ( (binary_expression "0.0 <= local_478" number_literal <= identifier) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002179c0;" goto statement_identifier ;) })) }))) (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" identifier = identifier) ;) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" identifier = identifier) ;) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" identifier = identifier) ;) (if_statement "if (0.0 <= local_474) goto LAB_002167c4;" if (parenthesized_expression "(0.0 <= local_474)" ( (binary_expression "0.0 <= local_474" number_literal <= identifier) )) (goto_statement "goto LAB_002167c4;" goto statement_identifier ;)) (labeled_statement "LAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00217224;" if (parenthesized_expression "((float)uVar39 <= 0.0)" ( (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00217224;" goto statement_identifier ;)) (labeled_statement "LAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" statement_identifier : (if_statement "if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" if (parenthesized_expression "(fVar28 <= 0.0)" ( (binary_expression "fVar28 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" else (compound_statement "{\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" { (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) })))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar29);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar29)" identifier = (call_expression "CONCAT44(uVar37,fVar29)" identifier (argument_list "(uVar37,fVar29)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }" { (expression_statement "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= fVar47) goto LAB_00216890;" if (parenthesized_expression "(0.0 <= fVar47)" ( (binary_expression "0.0 <= fVar47" number_literal <= identifier) )) (goto_statement "goto LAB_00216890;" goto statement_identifier ;)) (labeled_statement "LAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (labeled_statement "LAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" statement_identifier : (if_statement "if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" if (parenthesized_expression "(0.0 <= fVar49)" ( (binary_expression "0.0 <= fVar49" number_literal <= identifier) )) (compound_statement "{\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" { (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168bc;" goto statement_identifier ;) }))) (labeled_statement "LAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" statement_identifier : (if_statement "if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" if (parenthesized_expression "(0.0 <= fVar43)" ( (binary_expression "0.0 <= fVar43" number_literal <= identifier) )) (compound_statement "{\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" { (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168e4;" goto statement_identifier ;) }))) (labeled_statement "LAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00216f7c;" if (parenthesized_expression "((float)uVar39 <= 0.0)" ( (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00216f7c;" goto statement_identifier ;)) (labeled_statement "LAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" identifier = identifier) ;) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" identifier = identifier) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar28) goto LAB_00216938;" if (parenthesized_expression "(0.0 < fVar28)" ( (binary_expression "0.0 < fVar28" number_literal < identifier) )) (goto_statement "goto LAB_00216938;" goto statement_identifier ;)) (labeled_statement "LAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" statement_identifier : (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)(uVar39)" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;)) (if_statement "if (fVar47 <= 0.0) goto LAB_00216fc8;" if (parenthesized_expression "(fVar47 <= 0.0)" ( (binary_expression "fVar47 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fc8;" goto statement_identifier ;)) (labeled_statement "LAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" statement_identifier : (expression_statement "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" (assignment_expression "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(fVar47)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(fVar47)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fVar47)" ( identifier ))))) ;)) }) (else_clause "else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" else (compound_statement "{\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "local_474 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_474 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (fVar47 < 0.0) goto LAB_002170a0;" if (parenthesized_expression "(fVar47 < 0.0)" ( (binary_expression "fVar47 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_002170a0;" goto statement_identifier ;)) (labeled_statement "LAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" statement_identifier : (if_statement "if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" if (parenthesized_expression "(*(float *)(puVar9 + -0x5a8c) < fVar47)" ( (binary_expression "*(float *)(puVar9 + -0x5a8c) < fVar47" (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" { (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_002168a8;" goto statement_identifier ;) }))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) )))) ;) (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (fVar49 < 0.0) goto LAB_00217004;" if (parenthesized_expression "(fVar49 < 0.0)" ( (binary_expression "fVar49 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00217004;" goto statement_identifier ;)) (labeled_statement "LAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" statement_identifier : (if_statement "if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" if (parenthesized_expression "(fVar28 < fVar49)" ( (binary_expression "fVar28 < fVar49" identifier < identifier) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168d0;" goto statement_identifier ;) }))) (expression_statement "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (fVar43 < 0.0) goto LAB_00216f6c;" if (parenthesized_expression "(fVar43 < 0.0)" ( (binary_expression "fVar43 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00216f6c;" goto statement_identifier ;)) (labeled_statement "LAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(fVar43 <= fVar47)" ( (binary_expression "fVar43 <= fVar47" identifier <= identifier) )) (compound_statement "{\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if (0.0 < (float)uVar39) goto LAB_00216910;" if (parenthesized_expression "(0.0 < (float)uVar39)" ( (binary_expression "0.0 < (float)uVar39" number_literal < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216910;" goto statement_identifier ;)) (labeled_statement "LAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" identifier = identifier) ;) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" identifier = identifier) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (if_statement "if (fVar28 <= 0.0) goto LAB_00216fa0;" if (parenthesized_expression "(fVar28 <= 0.0)" ( (binary_expression "fVar28 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" statement_identifier : (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (if_statement "if (0.0 < fVar47) goto LAB_00216960;" if (parenthesized_expression "(0.0 < fVar47)" ( (binary_expression "0.0 < fVar47" number_literal < identifier) )) (goto_statement "goto LAB_00216960;" goto statement_identifier ;)) (labeled_statement "LAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" statement_identifier : (expression_statement "local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_480 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) }))) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e4c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e4c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e4c" identifier + number_literal) ))))) ;) (expression_statement "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e48)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e48)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e48" identifier + number_literal) ))))) ;) (expression_statement "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);" (assignment_expression "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(unaff_s0 + -0x1e50)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e50)" * (cast_expression "(float *)(unaff_s0 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e50)" ( (binary_expression "unaff_s0 + -0x1e50" identifier + number_literal) )))))) ;) (expression_statement "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54)" identifier = (binary_expression "local_480 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_1fc = local_47c;" (assignment_expression "local_1fc = local_47c" identifier = identifier) ;) (expression_statement "local_1f8 = local_478;" (assignment_expression "local_1f8 = local_478" identifier = identifier) ;) (expression_statement "local_1f4 = local_474;" (assignment_expression "local_1f4 = local_474" identifier = identifier) ;) (expression_statement "local_1f0 = local_488;" (assignment_expression "local_1f0 = local_488" identifier = identifier) ;) (expression_statement "local_1ec = local_484;" (assignment_expression "local_1ec = local_484" identifier = identifier) ;) (expression_statement "local_1e8 = local_480;" (assignment_expression "local_1e8 = local_480" identifier = identifier) ;) (expression_statement "local_1e4 = fVar49 * fVar47 + local_488 * fVar34;" (assignment_expression "local_1e4 = fVar49 * fVar47 + local_488 * fVar34" identifier = (binary_expression "fVar49 * fVar47 + local_488 * fVar34" (binary_expression "fVar49 * fVar47" identifier * identifier) + (binary_expression "local_488 * fVar34" identifier * identifier))) ;) (expression_statement "local_1e0 = fVar43 * fVar47 + local_484 * fVar34;" (assignment_expression "local_1e0 = fVar43 * fVar47 + local_484 * fVar34" identifier = (binary_expression "fVar43 * fVar47 + local_484 * fVar34" (binary_expression "fVar43 * fVar47" identifier * identifier) + (binary_expression "local_484 * fVar34" identifier * identifier))) ;) (expression_statement "local_1d8 = fVar49 * fVar34 + local_488 * fVar47;" (assignment_expression "local_1d8 = fVar49 * fVar34 + local_488 * fVar47" identifier = (binary_expression "fVar49 * fVar34 + local_488 * fVar47" (binary_expression "fVar49 * fVar34" identifier * identifier) + (binary_expression "local_488 * fVar47" identifier * identifier))) ;) (expression_statement "local_1dc = fVar29 * fVar47 + local_480 * fVar34;" (assignment_expression "local_1dc = fVar29 * fVar47 + local_480 * fVar34" identifier = (binary_expression "fVar29 * fVar47 + local_480 * fVar34" (binary_expression "fVar29 * fVar47" identifier * identifier) + (binary_expression "local_480 * fVar34" identifier * identifier))) ;) (expression_statement "local_1d4 = fVar43 * fVar34 + local_484 * fVar47;" (assignment_expression "local_1d4 = fVar43 * fVar34 + local_484 * fVar47" identifier = (binary_expression "fVar43 * fVar34 + local_484 * fVar47" (binary_expression "fVar43 * fVar34" identifier * identifier) + (binary_expression "local_484 * fVar47" identifier * identifier))) ;) (expression_statement "local_1d0 = fVar29 * fVar34 + local_480 * fVar47;" (assignment_expression "local_1d0 = fVar29 * fVar34 + local_480 * fVar47" identifier = (binary_expression "fVar29 * fVar34 + local_480 * fVar47" (binary_expression "fVar29 * fVar34" identifier * identifier) + (binary_expression "local_480 * fVar47" identifier * identifier))) ;) (if_statement "if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" if (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" { (expression_statement "pbVar11 = local_dc;" (assignment_expression "pbVar11 = local_dc" identifier = identifier) ;) (expression_statement "unaff_s3 = unaff_s3 + (int)pbVar11;" (assignment_expression "unaff_s3 = unaff_s3 + (int)pbVar11" identifier = (binary_expression "unaff_s3 + (int)pbVar11" identifier + (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e60)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e60)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e60" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);" do (compound_statement "{\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "pfVar22 = &local_1fc;" (assignment_expression "pfVar22 = &local_1fc" identifier = (pointer_expression "&local_1fc" & identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "fVar47 = fVar28;" (assignment_expression "fVar47 = fVar28" identifier = identifier) ;) (do_statement "do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);" do (compound_statement "{\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              }" { (expression_statement "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);" (assignment_expression "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" identifier = (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2])" (parenthesized_expression "(pfVar21[2] - pfVar22[2])" ( (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - (subscript_expression "pfVar22[2]" identifier [ number_literal ])) )) * (parenthesized_expression "(pfVar21[2] - pfVar22[2])" ( (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - (subscript_expression "pfVar22[2]" identifier [ number_literal ])) ))) + (binary_expression "(*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (parenthesized_expression "(*pfVar21 - *pfVar22)" ( (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" * identifier) - (pointer_expression "*pfVar22" * identifier)) )) * (parenthesized_expression "(*pfVar21 - *pfVar22)" ( (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" * identifier) - (pointer_expression "*pfVar22" * identifier)) )))) + (binary_expression "(pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (parenthesized_expression "(pfVar21[1] - pfVar22[1])" ( (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - (subscript_expression "pfVar22[1]" identifier [ number_literal ])) )) * (parenthesized_expression "(pfVar21[1] - pfVar22[1])" ( (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - (subscript_expression "pfVar22[1]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar16 = iVar26;" (assignment_expression "iVar16 = iVar26" identifier = identifier) ;) (if_statement "if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" if (parenthesized_expression "(fVar47 <= fVar49)" ( (binary_expression "fVar47 <= fVar49" identifier <= identifier) )) (compound_statement "{\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" { (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" identifier = identifier) ;) (expression_statement "fVar49 = fVar47;" (assignment_expression "fVar49 = fVar47" identifier = identifier) ;) })) (expression_statement "fVar47 = fVar49;" (assignment_expression "fVar47 = fVar49" identifier = identifier) ;) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" identifier = (binary_expression "pfVar22 + 3" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar16;" (assignment_expression "iVar6 = iVar16" identifier = identifier) ;) }) while (parenthesized_expression "(iVar26 != 4)" ( (binary_expression "iVar26 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar11 = (byte)iVar16;" (assignment_expression "*pbVar11 = (byte)iVar16" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)iVar16" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s3 != pbVar11)" ( (binary_expression "unaff_s3 != pbVar11" identifier != identifier) )) ;) })) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" identifier = identifier) ;) (do_statement "do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);" do (compound_statement "{\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          }" { (while_statement "while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" while (parenthesized_expression "(fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN)" ( (comma_expression "fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "fVar28 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) , (comma_expression "unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "unaff_s4 = pfVar21" identifier = identifier) , (binary_expression "fVar28 != -NAN" identifier != (unary_expression "-NAN" - identifier)))) )) (compound_statement "{\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" { (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = local_dc[(int)fVar28];" (assignment_expression "*pbVar11 = local_dc[(int)fVar28]" (pointer_expression "*pbVar11" * identifier) = (subscript_expression "local_dc[(int)fVar28]" identifier [ (cast_expression "(int)fVar28" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == unaff_s2) goto LAB_00216af4;" if (parenthesized_expression "(unaff_s1 == unaff_s2)" ( (binary_expression "unaff_s1 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_00216af4;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != unaff_s2)" ( (binary_expression "unaff_s1 != unaff_s2" identifier != identifier) )) ;) }) (else_clause "else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" else (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" { (if_statement "if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" { (labeled_statement "LAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" identifier = number_literal) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" identifier = number_literal) ;) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" identifier = number_literal) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;" statement_identifier : (if_statement "if (fVar29 < 0.0) goto LAB_0021720c;" if (parenthesized_expression "(fVar29 < 0.0)" ( (binary_expression "fVar29 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_0021720c;" goto statement_identifier ;))) (labeled_statement "LAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c))" ( (binary_expression "fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier <= (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) )) (compound_statement "{\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if (0.0 < (float)uVar39) goto LAB_002167f4;" if (parenthesized_expression "(0.0 < (float)uVar39)" ( (binary_expression "0.0 < (float)uVar39" number_literal < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_002167f4;" goto statement_identifier ;)) (labeled_statement "LAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (goto_statement "goto joined_r0x00216814;" goto statement_identifier ;) })) (expression_statement "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);" (assignment_expression "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e44)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e44" identifier + number_literal) ))))) ;) (expression_statement "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e48" identifier + number_literal) ))))) ;) (expression_statement "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e4c" identifier + number_literal) ))))) ;) (expression_statement "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);" (assignment_expression "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e38)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e38" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2674)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2674)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2674" identifier + number_literal) )))) ;) (expression_statement "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);" (assignment_expression "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e40)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e40" identifier + number_literal) ))))) ;) (expression_statement "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) ;) (expression_statement "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);" (assignment_expression "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e3c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e3c" identifier + number_literal) ))))) ;) (expression_statement "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "local_43c = 0;" (assignment_expression "local_43c = 0" identifier = number_literal) ;) (expression_statement "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) ))))) ;) (expression_statement "local_42c = 0;" (assignment_expression "local_42c = 0" identifier = number_literal) ;) (expression_statement "local_3d8 = 0.0;" (assignment_expression "local_3d8 = 0.0" identifier = number_literal) ;) (expression_statement "local_3d4 = 0.0;" (assignment_expression "local_3d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_3d0 = 0.0;" (assignment_expression "local_3d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) ))))) ;) (expression_statement "local_3cc = 0;" (assignment_expression "local_3cc = 0" identifier = number_literal) ;) (expression_statement "local_470 = fVar49;" (assignment_expression "local_470 = fVar49" identifier = identifier) ;) (expression_statement "local_46c = fVar47;" (assignment_expression "local_46c = fVar47" identifier = identifier) ;) (expression_statement "local_468 = fVar43;" (assignment_expression "local_468 = fVar43" identifier = identifier) ;) (expression_statement "local_454 = local_458;" (assignment_expression "local_454 = local_458" identifier = identifier) ;) (expression_statement "local_450 = local_458;" (assignment_expression "local_450 = local_458" identifier = identifier) ;) (expression_statement "local_44c = local_458;" (assignment_expression "local_44c = local_458" identifier = identifier) ;) (expression_statement "local_440 = local_448;" (assignment_expression "local_440 = local_448" identifier = identifier) ;) (expression_statement "local_430 = local_438;" (assignment_expression "local_430 = local_438" identifier = identifier) ;) (expression_statement "local_424 = local_428;" (assignment_expression "local_424 = local_428" identifier = identifier) ;) (expression_statement "local_420 = local_428;" (assignment_expression "local_420 = local_428" identifier = identifier) ;) (expression_statement "local_41c = local_428;" (assignment_expression "local_41c = local_428" identifier = identifier) ;) (expression_statement "local_414 = local_418;" (assignment_expression "local_414 = local_418" identifier = identifier) ;) (expression_statement "local_410 = local_418;" (assignment_expression "local_410 = local_418" identifier = identifier) ;) (expression_statement "local_404 = local_408;" (assignment_expression "local_404 = local_408" identifier = identifier) ;) (expression_statement "local_400 = local_408;" (assignment_expression "local_400 = local_408" identifier = identifier) ;) (expression_statement "local_3fc = local_408;" (assignment_expression "local_3fc = local_408" identifier = identifier) ;) (expression_statement "local_3f4 = local_3f8;" (assignment_expression "local_3f4 = local_3f8" identifier = identifier) ;) (expression_statement "local_3f0 = local_3f8;" (assignment_expression "local_3f0 = local_3f8" identifier = identifier) ;) (expression_statement "local_3ec = local_3f8;" (assignment_expression "local_3ec = local_3f8" identifier = identifier) ;) (expression_statement "local_3e4 = local_3e8;" (assignment_expression "local_3e4 = local_3e8" identifier = identifier) ;) (expression_statement "local_3e0 = local_3e8;" (assignment_expression "local_3e0 = local_3e8" identifier = identifier) ;) (expression_statement "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);" (call_expression "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" identifier (argument_list "(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_1fc" & identifier) , (pointer_expression "&local_3d8" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_UINT_003a8950 + -0x1e60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e60" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = (float *)0x0;" (assignment_expression "pfVar22 = (float *)0x0" identifier = (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = (float *)0x0;" (assignment_expression "unaff_s4 = (float *)0x0" identifier = (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar9 = PTR_LAB_003a8bc8 + -0x7df4;" (assignment_expression "puVar9 = PTR_LAB_003a8bc8 + -0x7df4" identifier = (binary_expression "PTR_LAB_003a8bc8 + -0x7df4" identifier + number_literal)) ;) (do_statement "do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);" do (compound_statement "{\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          }" { (expression_statement "uVar5 = (uint)uVar45;" (assignment_expression "uVar5 = (uint)uVar45" identifier = (cast_expression "(uint)uVar45" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "local_3c8 = unaff_s0;" (assignment_expression "local_3c8 = unaff_s0" identifier = identifier) ;) (expression_statement "local_3c4 = &local_458;" (assignment_expression "local_3c4 = &local_458" identifier = (pointer_expression "&local_458" & identifier)) ;) (expression_statement "local_3c0 = &local_47c;" (assignment_expression "local_3c0 = &local_47c" identifier = (pointer_expression "&local_47c" & identifier)) ;) (expression_statement "local_3bc = &local_488;" (assignment_expression "local_3bc = &local_488" identifier = (pointer_expression "&local_488" & identifier)) ;) (expression_statement "local_3b8 = &local_448;" (assignment_expression "local_3b8 = &local_448" identifier = (pointer_expression "&local_448" & identifier)) ;) (expression_statement "local_3b4 = &local_438;" (assignment_expression "local_3b4 = &local_438" identifier = (pointer_expression "&local_438" & identifier)) ;) (expression_statement "local_3b0 = &local_428;" (assignment_expression "local_3b0 = &local_428" identifier = (pointer_expression "&local_428" & identifier)) ;) (expression_statement "local_3ac = &local_418;" (assignment_expression "local_3ac = &local_418" identifier = (pointer_expression "&local_418" & identifier)) ;) (expression_statement "local_3a8 = &local_1fc;" (assignment_expression "local_3a8 = &local_1fc" identifier = (pointer_expression "&local_1fc" & identifier)) ;) (expression_statement "local_3a4 = &local_408;" (assignment_expression "local_3a4 = &local_408" identifier = (pointer_expression "&local_408" & identifier)) ;) (expression_statement "local_3a0 = &local_3f8;" (assignment_expression "local_3a0 = &local_3f8" identifier = (pointer_expression "&local_3f8" & identifier)) ;) (expression_statement "local_39c = &local_3e8;" (assignment_expression "local_39c = &local_3e8" identifier = (pointer_expression "&local_3e8" & identifier)) ;) (expression_statement "local_398 = &local_3d8;" (assignment_expression "local_398 = &local_3d8" identifier = (pointer_expression "&local_3d8" & identifier)) ;) (expression_statement "local_394 = uVar5;" (assignment_expression "local_394 = uVar5" identifier = identifier) ;) (expression_statement "local_390 = unaff_s4;" (assignment_expression "local_390 = unaff_s4" identifier = identifier) ;) (expression_statement "local_38c = iVar6;" (assignment_expression "local_38c = iVar6" identifier = identifier) ;) (expression_statement "local_388 = iVar26;" (assignment_expression "local_388 = iVar26" identifier = identifier) ;) (expression_statement "local_384 = iVar16;" (assignment_expression "local_384 = iVar16" identifier = identifier) ;) (expression_statement "local_380 = pfVar22;" (assignment_expression "local_380 = pfVar22" identifier = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" ( (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" * (cast_expression "(code *)PTR_GOMP_parallel_003a9198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_3c8,extraout_v1,0)" ( identifier , (pointer_expression "&local_3c8" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar16 = local_384;" (assignment_expression "iVar16 = local_384" identifier = identifier) ;) (expression_statement "iVar26 = local_388;" (assignment_expression "iVar26 = local_388" identifier = identifier) ;) (expression_statement "iVar6 = local_38c;" (assignment_expression "iVar6 = local_38c" identifier = identifier) ;) (expression_statement "unaff_s4 = local_390;" (assignment_expression "unaff_s4 = local_390" identifier = identifier) ;) (expression_statement "uVar45 = (ulonglong)local_394;" (assignment_expression "uVar45 = (ulonglong)local_394" identifier = (cast_expression "(ulonglong)local_394" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "pfVar18 = unaff_s4;" (assignment_expression "pfVar18 = unaff_s4" identifier = identifier) ;) (if_statement "if (pfVar22 != local_390) break;" if (parenthesized_expression "(pfVar22 != local_390)" ( (binary_expression "pfVar22 != local_390" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pfVar22 = (float *)((int)pfVar22 + 1);" (assignment_expression "pfVar22 = (float *)((int)pfVar22 + 1)" identifier = (cast_expression "(float *)((int)pfVar22 + 1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar22 + 1)" ( (binary_expression "(int)pfVar22 + 1" (cast_expression "(int)pfVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" if (parenthesized_expression "(pfVar22 == (float *)&DAT_00000008)" ( (binary_expression "pfVar22 == (float *)&DAT_00000008" identifier == (cast_expression "(float *)&DAT_00000008" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" { (expression_statement "pfVar18 = (float *)&DAT_00000007;" (assignment_expression "pfVar18 = (float *)&DAT_00000007" identifier = (cast_expression "(float *)&DAT_00000007" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000007" & identifier))) ;) (break_statement "break;" break ;) })) (expression_statement "local_45c = local_480 - local_474;" (assignment_expression "local_45c = local_480 - local_474" identifier = (binary_expression "local_480 - local_474" identifier - identifier)) ;) (expression_statement "local_460 = local_484 - local_478;" (assignment_expression "local_460 = local_484 - local_478" identifier = (binary_expression "local_484 - local_478" identifier - identifier)) ;) (expression_statement "local_464 = local_488 - local_47c;" (assignment_expression "local_464 = local_488 - local_47c" identifier = (binary_expression "local_488 - local_47c" identifier - identifier)) ;) (expression_statement "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);" (assignment_expression "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" identifier = (call_expression "(*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_1fc" & identifier) , (pointer_expression "&local_3d8" & identifier) , identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar11 = local_dc + (int)pfVar18 * 0x10;" (assignment_expression "pbVar11 = local_dc + (int)pfVar18 * 0x10" identifier = (binary_expression "local_dc + (int)pfVar18 * 0x10" identifier + (binary_expression "(int)pfVar18 * 0x10" (cast_expression "(int)pfVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 0;" (assignment_expression "local_ec[bVar1] = 0" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar6 != pbVar10)" ( (binary_expression "pbVar11 + iVar6 != pbVar10" (binary_expression "pbVar11 + iVar6" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" if (parenthesized_expression "(iVar6 < iVar26)" ( (binary_expression "iVar6 < iVar26" identifier < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar6;" (assignment_expression "pbVar10 = pbVar11 + iVar6" identifier = (binary_expression "pbVar11 + iVar6" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 2;" (assignment_expression "local_ec[bVar1] = 2" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar26 != pbVar10)" ( (binary_expression "pbVar11 + iVar26 != pbVar10" (binary_expression "pbVar11 + iVar26" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" if (parenthesized_expression "(iVar26 < iVar16)" ( (binary_expression "iVar26 < iVar16" identifier < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar26;" (assignment_expression "pbVar10 = pbVar11 + iVar26" identifier = (binary_expression "pbVar11 + iVar26" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 3;" (assignment_expression "local_ec[bVar1] = 3" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar16 != pbVar10)" ( (binary_expression "pbVar11 + iVar16 != pbVar10" (binary_expression "pbVar11 + iVar16" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" if (parenthesized_expression "(iVar16 < (int)unaff_s3)" ( (binary_expression "iVar16 < (int)unaff_s3" identifier < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar16;" (assignment_expression "pbVar10 = pbVar11 + iVar16" identifier = (binary_expression "pbVar11 + iVar16" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 1;" (assignment_expression "local_ec[bVar1] = 1" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + (int)unaff_s3 != pbVar10)" ( (binary_expression "pbVar11 + (int)unaff_s3 != pbVar10" (binary_expression "pbVar11 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" identifier = identifier) ;) (do_statement "do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);" do (compound_statement "{\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          }" { (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" while (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" ( (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" identifier = identifier) , (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" * identifier) != (unary_expression "-NAN" - identifier))) )) (compound_statement "{\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" { (expression_statement "*pbVar11 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar11 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar11" * identifier) = (subscript_expression "local_ec[(int)*pfVar21]" identifier [ (cast_expression "(int)*pfVar21" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;" if (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" ( (binary_expression "unaff_s1 == pfVar21 + 1" identifier == (binary_expression "pfVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002176b0;" goto statement_identifier ;)) })) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" ( (binary_expression "unaff_s1 != pfVar21 + 1" identifier != (binary_expression "pfVar21 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_002176b0:\n          unaff_s2 = pfVar21 + 1;" statement_identifier : (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" statement_identifier : (expression_statement "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" (call_expression "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" identifier (argument_list "(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) })) })) (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 <= (int)local_4c8)" ( (binary_expression "(int)uVar5 <= (int)local_4c8" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x002175bc) */\n/* WARNING: Removing unreachable block (ram,0x002175c4) */\n/* WARNING: Removing unreachable block (ram,0x002178a0) */\n/* WARNING: Removing unreachable block (ram,0x002175e8) */\n/* WARNING: Removing unreachable block (ram,0x002175f4) */\n/* WARNING: Removing unreachable block (ram,0x0021760c) */\n/* WARNING: Removing unreachable block (ram,0x00217618) */\n/* WARNING: Removing unreachable block (ram,0x00217620) */\n/* 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\nvoid WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  bool bVar2;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  ssize_t *psVar7;\n  float *pfVar8;\n  DDSVector3 *pDVar9;\n  DDSVector4 *pDVar10;\n  undefined *puVar11;\n  size_t sVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  undefined4 extraout_v1;\n  uint uVar15;\n  bool bVar16;\n  PixelChannelMap *pPVar17;\n  bool bVar18;\n  int iVar19;\n  bool bVar20;\n  int *piVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  byte *pbVar24;\n  int iVar25;\n  int *piVar26;\n  uchar *unaff_s0;\n  int *unaff_s1;\n  int *unaff_s2;\n  uint uVar27;\n  uchar *unaff_s3;\n  DDSVector4 *unaff_s4;\n  DDSVector4 *pDVar28;\n  float *pfVar29;\n  size_t unaff_s6;\n  uint uVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  Image *unaff_s8;\n  int iVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  float fVar37;\n  float fVar38;\n  DDSVector4 *pDVar39;\n  float fVar40;\n  DDSVector4 *pDVar41;\n  float fVar42;\n  DDSVector4 *pDVar43;\n  float fVar44;\n  double dVar45;\n  float fVar46;\n  undefined4 uVar47;\n  double dVar48;\n  undefined8 uVar49;\n  double dVar50;\n  double dVar51;\n  float fVar52;\n  float fVar53;\n  float fVar54;\n  float fVar55;\n  float fVar56;\n  float fVar57;\n  double dVar58;\n  double dVar59;\n  uint uVar60;\n  int in_stack_fffffae0;\n  float in_stack_fffffae4;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  DDSVector4 grid;\n  DDSVector4 gridrcp;\n  DDSVector4 half;\n  DDSVector4 onethird_onethird2;\n  DDSVector4 two;\n  DDSVector4 twonineths;\n  DDSVector4 twothirds_twothirds2;\n  DDSVector4 xSumwSum;\n  DDSVector3 end_1;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector3 codes [4];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar closest [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = image->rows;\n  pDVar28 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "void WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  bool bVar2;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  ssize_t *psVar7;\n  float *pfVar8;\n  DDSVector3 *pDVar9;\n  DDSVector4 *pDVar10;\n  undefined *puVar11;\n  size_t sVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  undefined4 extraout_v1;\n  uint uVar15;\n  bool bVar16;\n  PixelChannelMap *pPVar17;\n  bool bVar18;\n  int iVar19;\n  bool bVar20;\n  int *piVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  byte *pbVar24;\n  int iVar25;\n  int *piVar26;\n  uchar *unaff_s0;\n  int *unaff_s1;\n  int *unaff_s2;\n  uint uVar27;\n  uchar *unaff_s3;\n  DDSVector4 *unaff_s4;\n  DDSVector4 *pDVar28;\n  float *pfVar29;\n  size_t unaff_s6;\n  uint uVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  Image *unaff_s8;\n  int iVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  float fVar37;\n  float fVar38;\n  DDSVector4 *pDVar39;\n  float fVar40;\n  DDSVector4 *pDVar41;\n  float fVar42;\n  DDSVector4 *pDVar43;\n  float fVar44;\n  double dVar45;\n  float fVar46;\n  undefined4 uVar47;\n  double dVar48;\n  undefined8 uVar49;\n  double dVar50;\n  double dVar51;\n  float fVar52;\n  float fVar53;\n  float fVar54;\n  float fVar55;\n  float fVar56;\n  float fVar57;\n  double dVar58;\n  double dVar59;\n  uint uVar60;\n  int in_stack_fffffae0;\n  float in_stack_fffffae4;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  DDSVector4 grid;\n  DDSVector4 gridrcp;\n  DDSVector4 half;\n  DDSVector4 onethird_onethird2;\n  DDSVector4 two;\n  DDSVector4 twonineths;\n  DDSVector4 twothirds_twothirds2;\n  DDSVector4 xSumwSum;\n  DDSVector3 end_1;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector3 codes [4];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar closest [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = image->rows;\n  pDVar28 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" primitive_type (function_declarator "WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "size_t compression" primitive_type identifier) , (parameter_declaration "MagickBooleanType clusterFit" type_identifier identifier) , (parameter_declaration "MagickBooleanType weightByAlpha" type_identifier identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  ssize_t *psVar7;\n  float *pfVar8;\n  DDSVector3 *pDVar9;\n  DDSVector4 *pDVar10;\n  undefined *puVar11;\n  size_t sVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  undefined4 extraout_v1;\n  uint uVar15;\n  bool bVar16;\n  PixelChannelMap *pPVar17;\n  bool bVar18;\n  int iVar19;\n  bool bVar20;\n  int *piVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  byte *pbVar24;\n  int iVar25;\n  int *piVar26;\n  uchar *unaff_s0;\n  int *unaff_s1;\n  int *unaff_s2;\n  uint uVar27;\n  uchar *unaff_s3;\n  DDSVector4 *unaff_s4;\n  DDSVector4 *pDVar28;\n  float *pfVar29;\n  size_t unaff_s6;\n  uint uVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  Image *unaff_s8;\n  int iVar33;\n  float fVar35;\n  float fVar36;\n  double dVar34;\n  float fVar37;\n  float fVar38;\n  DDSVector4 *pDVar39;\n  float fVar40;\n  DDSVector4 *pDVar41;\n  float fVar42;\n  DDSVector4 *pDVar43;\n  float fVar44;\n  double dVar45;\n  float fVar46;\n  undefined4 uVar47;\n  double dVar48;\n  undefined8 uVar49;\n  double dVar50;\n  double dVar51;\n  float fVar52;\n  float fVar53;\n  float fVar54;\n  float fVar55;\n  float fVar56;\n  float fVar57;\n  double dVar58;\n  double dVar59;\n  uint uVar60;\n  int in_stack_fffffae0;\n  float in_stack_fffffae4;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  DDSVector4 grid;\n  DDSVector4 gridrcp;\n  DDSVector4 half;\n  DDSVector4 onethird_onethird2;\n  DDSVector4 two;\n  DDSVector4 twonineths;\n  DDSVector4 twothirds_twothirds2;\n  DDSVector4 xSumwSum;\n  DDSVector3 end_1;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector3 codes [4];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar closest [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = image->rows;\n  pDVar28 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "DDSVector3 start_00;" type_identifier identifier ;) (declaration "DDSVector3 start_01;" type_identifier identifier ;) (declaration "DDSVector3 axis_00;" type_identifier identifier ;) (declaration "DDSVector3 end_00;" type_identifier identifier ;) (declaration "DDSVector3 end_01;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ssize_t *psVar7;" primitive_type (pointer_declarator "*psVar7" * identifier) ;) (declaration "float *pfVar8;" primitive_type (pointer_declarator "*pfVar8" * identifier) ;) (declaration "DDSVector3 *pDVar9;" type_identifier (pointer_declarator "*pDVar9" * identifier) ;) (declaration "DDSVector4 *pDVar10;" type_identifier (pointer_declarator "*pDVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uchar *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar17;" type_identifier (pointer_declarator "*pPVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "uchar *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uchar *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "DDSVector4 *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "DDSVector4 *pDVar28;" type_identifier (pointer_declarator "*pDVar28" * identifier) ;) (declaration "float *pfVar29;" primitive_type (pointer_declarator "*pfVar29" * identifier) ;) (declaration "size_t unaff_s6;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "Image *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "float fVar35;" primitive_type identifier ;) (declaration "float fVar36;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "float fVar37;" primitive_type identifier ;) (declaration "float fVar38;" primitive_type identifier ;) (declaration "DDSVector4 *pDVar39;" type_identifier (pointer_declarator "*pDVar39" * identifier) ;) (declaration "float fVar40;" primitive_type identifier ;) (declaration "DDSVector4 *pDVar41;" type_identifier (pointer_declarator "*pDVar41" * identifier) ;) (declaration "float fVar42;" primitive_type identifier ;) (declaration "DDSVector4 *pDVar43;" type_identifier (pointer_declarator "*pDVar43" * identifier) ;) (declaration "float fVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "float fVar46;" primitive_type identifier ;) (declaration "undefined4 uVar47;" type_identifier identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "undefined8 uVar49;" type_identifier identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "float fVar52;" primitive_type identifier ;) (declaration "float fVar53;" primitive_type identifier ;) (declaration "float fVar54;" primitive_type identifier ;) (declaration "float fVar55;" primitive_type identifier ;) (declaration "float fVar56;" primitive_type identifier ;) (declaration "float fVar57;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "double dVar59;" primitive_type identifier ;) (declaration "uint uVar60;" type_identifier identifier ;) (declaration "int in_stack_fffffae0;" primitive_type identifier ;) (declaration "float in_stack_fffffae4;" primitive_type identifier ;) (declaration "undefined *local_50c;" type_identifier (pointer_declarator "*local_50c" * identifier) ;) (declaration "double local_508;" primitive_type identifier ;) (declaration "double local_500;" primitive_type identifier ;) (declaration "double local_4f8;" primitive_type identifier ;) (declaration "double local_4f0;" primitive_type identifier ;) (declaration "undefined *local_4e8;" type_identifier (pointer_declarator "*local_4e8" * identifier) ;) (declaration "int local_4e4;" primitive_type identifier ;) (declaration "uint local_4dc;" type_identifier identifier ;) (declaration "uint local_4d0;" type_identifier identifier ;) (declaration "uint local_4cc;" type_identifier identifier ;) (declaration "uint local_4c8;" type_identifier identifier ;) (declaration "DDSVector3 end;" type_identifier identifier ;) (declaration "DDSVector3 start;" type_identifier identifier ;) (declaration "DDSVector3 axis;" type_identifier identifier ;) (declaration "undefined4 local_458;" type_identifier identifier ;) (declaration "undefined4 local_454;" type_identifier identifier ;) (declaration "undefined4 local_450;" type_identifier identifier ;) (declaration "undefined4 local_44c;" type_identifier identifier ;) (declaration "DDSVector4 grid;" type_identifier identifier ;) (declaration "DDSVector4 gridrcp;" type_identifier identifier ;) (declaration "DDSVector4 half;" type_identifier identifier ;) (declaration "DDSVector4 onethird_onethird2;" type_identifier identifier ;) (declaration "DDSVector4 two;" type_identifier identifier ;) (declaration "DDSVector4 twonineths;" type_identifier identifier ;) (declaration "DDSVector4 twothirds_twothirds2;" type_identifier identifier ;) (declaration "DDSVector4 xSumwSum;" type_identifier identifier ;) (declaration "DDSVector3 end_1;" type_identifier identifier ;) (declaration "ssize_t alphas [16];" primitive_type (array_declarator "alphas [16]" identifier [ number_literal ]) ;) (declaration "ssize_t map [16];" primitive_type (array_declarator "map [16]" identifier [ number_literal ]) ;) (declaration "DDSVector4 points [16];" type_identifier (array_declarator "points [16]" identifier [ number_literal ]) ;) (declaration "DDSVector3 codes [4];" type_identifier (array_declarator "codes [4]" identifier [ number_literal ]) ;) (declaration "uchar indices [16];" type_identifier (array_declarator "indices [16]" identifier [ number_literal ]) ;) (declaration "uchar unordered [16];" type_identifier (array_declarator "unordered [16]" identifier [ number_literal ]) ;) (declaration "uchar closest [16];" type_identifier (array_declarator "closest [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_cc [112];" type_identifier (array_declarator "abStack_cc [112]" identifier [ number_literal ]) ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar4 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = image->rows;" (assignment_expression "uVar5 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "pDVar28 = unaff_s4;" (assignment_expression "pDVar28 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 < 1) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 < 1)" ( (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) (expression_statement "local_4d0 = 0;" (assignment_expression "local_4d0 = 0" identifier = number_literal) ;) (expression_statement "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "local_4f8 = *(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) ))))) ;) (labeled_statement "LAB_00216150:\n  do {\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" do (compound_statement "{\n    local_508._0_4_ = image->columns;\n    local_4c8 = local_4d0 + 4;\n    uVar30 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = image->rows;\n    pDVar28 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  }" { (expression_statement "local_508._0_4_ = image->columns;" (assignment_expression "local_508._0_4_ = image->columns" (field_expression "local_508._0_4_" identifier . field_identifier) = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "local_4c8 = local_4d0 + 4;" (assignment_expression "local_4c8 = local_4d0 + 4" identifier = (binary_expression "local_4d0 + 4" identifier + number_literal)) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_508._0_4_ < 1) goto LAB_00216b38;" if (parenthesized_expression "((int)local_508._0_4_ < 1)" ( (binary_expression "(int)local_508._0_4_ < 1" (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (goto_statement "goto LAB_00216b38;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_4cc = uVar30 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar11 = PTR_LAB_003a88e0;\n      unaff_s6 = compression;\n      unaff_s8 = image;\n      if (iVar6 == 0) break;\n      unaff_s2 = map;\n      unaff_s4 = points;\n      psVar7 = alphas;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);\n      pDVar28 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar33 = 0;\n      fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar15 = (uint)(points[0].y * fVar57 + fVar55);\n      uVar27 = (uint)(points[0].z * fVar57 + fVar55);\n      uVar30 = (uint)(points[0].x * fVar57 + fVar55);\n      if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }\n      if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }\n      if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }\n      indices[2] = (uchar)uVar27;\n      indices[1] = (uchar)uVar15;\n      indices[0] = (uchar)uVar30;\n      while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }\n      puVar13 = unordered;\n      do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);\n      do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);\nLAB_00216f04:\n      unaff_s2 = piVar26 + 1;\n      start_01.x = end_1.x;\n      start_01.y = end_1.y;\n      start_01.z = end_1.z;\n      end_01.x = (float)closest;\n      end_01.y = (float)in_stack_fffffae0;\n      end_01.z = in_stack_fffffae4;\n      WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);\n      while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }\n    }" { (expression_statement "local_4cc = uVar30 + 4;" (assignment_expression "local_4cc = uVar30 + 4" identifier = (binary_expression "uVar30 + 4" identifier + number_literal)) ;) (if_statement "if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }" if (parenthesized_expression "(local_4cc < local_508._0_4_)" ( (binary_expression "local_4cc < local_508._0_4_" identifier < (field_expression "local_508._0_4_" identifier . field_identifier)) )) (compound_statement "{\n        local_508._0_4_ = 4;\n      }" { (expression_statement "local_508._0_4_ = 4;" (assignment_expression "local_508._0_4_ = 4" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }" else (compound_statement "{\n        local_508._0_4_ = local_508._0_4_ - uVar30;\n      }" { (expression_statement "local_508._0_4_ = local_508._0_4_ - uVar30;" (assignment_expression "local_508._0_4_ = local_508._0_4_ - uVar30" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_508._0_4_ - uVar30" (field_expression "local_508._0_4_" identifier . field_identifier) - identifier)) ;) }))) (if_statement "if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }" if (parenthesized_expression "(local_4c8 < uVar5)" ( (binary_expression "local_4c8 < uVar5" identifier < identifier) )) (compound_statement "{\n        local_4e4 = 4;\n      }" { (expression_statement "local_4e4 = 4;" (assignment_expression "local_4e4 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        local_4e4 = uVar5 - local_4d0;\n      }" else (compound_statement "{\n        local_4e4 = uVar5 - local_4d0;\n      }" { (expression_statement "local_4e4 = uVar5 - local_4d0;" (assignment_expression "local_4e4 = uVar5 - local_4d0" identifier = (binary_expression "uVar5 - local_4d0" identifier - identifier)) ;) }))) (expression_statement "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception);" (assignment_expression "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception)" identifier = (call_expression "(*(code *)PTR_GetVirtualPixels_003a9764)\n                        (image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception)" (parenthesized_expression "(*(code *)PTR_GetVirtualPixels_003a9764)" ( (pointer_expression "*(code *)PTR_GetVirtualPixels_003a9764" * (cast_expression "(code *)PTR_GetVirtualPixels_003a9764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,uVar30,local_4d0,local_508._0_4_,local_4e4,exception)" ( identifier , identifier , identifier , (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , 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) ;) (expression_statement "puVar11 = PTR_LAB_003a88e0;" (assignment_expression "puVar11 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "unaff_s6 = compression;" (assignment_expression "unaff_s6 = compression" identifier = identifier) ;) (expression_statement "unaff_s8 = image;" (assignment_expression "unaff_s8 = image" identifier = identifier) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = map;" (assignment_expression "unaff_s2 = map" identifier = identifier) ;) (expression_statement "unaff_s4 = points;" (assignment_expression "unaff_s4 = points" identifier = identifier) ;) (expression_statement "psVar7 = alphas;" (assignment_expression "psVar7 = alphas" identifier = identifier) ;) (expression_statement "unaff_s1 = unaff_s2;" (assignment_expression "unaff_s1 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      } while (unaff_s4 != (DDSVector4 *)unaff_s1);" do (compound_statement "{\n        *unaff_s1 = -1;\n        unaff_s1 = unaff_s1 + 1;\n        *psVar7 = -1;\n        psVar7 = psVar7 + 1;\n      }" { (expression_statement "*unaff_s1 = -1;" (assignment_expression "*unaff_s1 = -1" (pointer_expression "*unaff_s1" * identifier) = number_literal) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) (expression_statement "*psVar7 = -1;" (assignment_expression "*psVar7 = -1" (pointer_expression "*psVar7" * identifier) = number_literal) ;) (expression_statement "psVar7 = psVar7 + 1;" (assignment_expression "psVar7 = psVar7 + 1" identifier = (binary_expression "psVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != (DDSVector4 *)unaff_s1)" ( (binary_expression "unaff_s4 != (DDSVector4 *)unaff_s1" identifier != (cast_expression "(DDSVector4 *)unaff_s1" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "pDVar28 = unaff_s4;" (assignment_expression "pDVar28 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_4e4 < 1) {\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }\n      else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" if (parenthesized_expression "(local_4e4 < 1)" ( (binary_expression "local_4e4 < 1" identifier < number_literal) )) (compound_statement "{\n        if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar30 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (uchar *)0x0;\nLAB_002176f8:\n        pbVar24 = unordered;\n        pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);\n        uVar27 = uVar30;\n        if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }\n        uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);\n        if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);\n      }" { (if_statement "if (compression != 0x35545844) {\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }" if (parenthesized_expression "(compression != 0x35545844)" ( (binary_expression "compression != 0x35545844" identifier != number_literal) )) (compound_statement "{\n          unaff_s0 = (uchar *)0x0;\n          start.z = 0.0;\n          start.y = 0.0;\n          start.x = 0.0;\n          end.z = 0.0;\n          end.y = 0.0;\n          end.x = 0.0;\n          unaff_s3 = (uchar *)0x0;\n          goto LAB_0021703c;\n        }" { (expression_statement "unaff_s0 = (uchar *)0x0;" (assignment_expression "unaff_s0 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "start.z = 0.0;" (assignment_expression "start.z = 0.0" (field_expression "start.z" identifier . field_identifier) = number_literal) ;) (expression_statement "start.y = 0.0;" (assignment_expression "start.y = 0.0" (field_expression "start.y" identifier . field_identifier) = number_literal) ;) (expression_statement "start.x = 0.0;" (assignment_expression "start.x = 0.0" (field_expression "start.x" identifier . field_identifier) = number_literal) ;) (expression_statement "end.z = 0.0;" (assignment_expression "end.z = 0.0" (field_expression "end.z" identifier . field_identifier) = number_literal) ;) (expression_statement "end.y = 0.0;" (assignment_expression "end.y = 0.0" (field_expression "end.y" identifier . field_identifier) = number_literal) ;) (expression_statement "end.x = 0.0;" (assignment_expression "end.x = 0.0" (field_expression "end.x" identifier . field_identifier) = number_literal) ;) (expression_statement "unaff_s3 = (uchar *)0x0;" (assignment_expression "unaff_s3 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;) })) (expression_statement "local_508._0_4_ = 0;" (assignment_expression "local_508._0_4_ = 0" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "local_4dc = 5;" (assignment_expression "local_4dc = 5" identifier = number_literal) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "unaff_s0 = (uchar *)0x0;" (assignment_expression "unaff_s0 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_002176f8:\n        pbVar24 = unordered;" statement_identifier : (expression_statement "pbVar24 = unordered;" (assignment_expression "pbVar24 = unordered" identifier = identifier) ;)) (expression_statement "pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2574)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2574)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2574" identifier + number_literal) )))) ;) (expression_statement "sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24);" (assignment_expression "sVar12 = CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24)" identifier = (call_expression "CompressAlpha(local_508._0_4_,local_4dc,5,alphas,pbVar24)" identifier (argument_list "(local_508._0_4_,local_4dc,5,alphas,pbVar24)" ( (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "uVar27 = uVar30;" (assignment_expression "uVar27 = uVar30" identifier = identifier) ;) (if_statement "if ((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)) {\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }" if (parenthesized_expression "((uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7))" ( (binary_expression "(uVar30 < uVar5) || (uVar27 = uVar5, uVar30 - uVar5 < 7)" (parenthesized_expression "(uVar30 < uVar5)" ( (binary_expression "uVar30 < uVar5" identifier < identifier) )) || (parenthesized_expression "(uVar27 = uVar5, uVar30 - uVar5 < 7)" ( (comma_expression "uVar27 = uVar5, uVar30 - uVar5 < 7" (assignment_expression "uVar27 = uVar5" identifier = identifier) , (binary_expression "uVar30 - uVar5 < 7" (binary_expression "uVar30 - uVar5" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = uVar27;\n          uVar30 = uVar5 + 7;\n          if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }\n          if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }\n        }" { (expression_statement "uVar5 = uVar27;" (assignment_expression "uVar5 = uVar27" identifier = identifier) ;) (expression_statement "uVar30 = uVar5 + 7;" (assignment_expression "uVar30 = uVar5 + 7" identifier = (binary_expression "uVar5 + 7" identifier + number_literal)) ;) (if_statement "if (0xff < uVar30) {\n            uVar30 = 0xff;\n          }" if (parenthesized_expression "(0xff < uVar30)" ( (binary_expression "0xff < uVar30" number_literal < identifier) )) (compound_statement "{\n            uVar30 = 0xff;\n          }" { (expression_statement "uVar30 = 0xff;" (assignment_expression "uVar30 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar30 - uVar5 < 7) {\n            uVar5 = uVar30 - 7;\n          }" if (parenthesized_expression "(uVar30 - uVar5 < 7)" ( (binary_expression "uVar30 - uVar5 < 7" (binary_expression "uVar30 - uVar5" identifier - identifier) < number_literal) )) (compound_statement "{\n            uVar5 = uVar30 - 7;\n          }" { (expression_statement "uVar5 = uVar30 - 7;" (assignment_expression "uVar5 = uVar30 - 7" identifier = (binary_expression "uVar30 - 7" identifier - number_literal)) ;) })) })) (expression_statement "uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest);" (assignment_expression "uVar27 = (*pcVar32)(uVar5,uVar30,7,alphas,closest)" identifier = (call_expression "(*pcVar32)(uVar5,uVar30,7,alphas,closest)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(uVar5,uVar30,7,alphas,closest)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar27 < sVar12) {\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }" if (parenthesized_expression "(uVar27 < sVar12)" ( (binary_expression "uVar27 < sVar12" identifier < identifier) )) (compound_statement "{\n          pbVar22 = closest;\n          pbVar31 = pbVar24;\nLAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);\n        }" { (expression_statement "pbVar22 = closest;" (assignment_expression "pbVar22 = closest" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar24;" (assignment_expression "pbVar31 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_002177b4:\n          do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);" statement_identifier : (do_statement "do {\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          } while (abStack_cc != pbVar22);" do (compound_statement "{\n            bVar1 = *pbVar22;\n            local_508._0_4_ = uVar30;\n            local_4dc = uVar5;\n            if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }\n            pbVar22 = pbVar22 + 1;\n            pbVar31 = pbVar31 + 1;\n          }" { (expression_statement "bVar1 = *pbVar22;" (assignment_expression "bVar1 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "local_508._0_4_ = uVar30;" (assignment_expression "local_508._0_4_ = uVar30" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_4dc = uVar5;" (assignment_expression "local_4dc = uVar5" identifier = identifier) ;) (if_statement "if (bVar1 == 0) {\n              *pbVar31 = 1;\n            }\n            else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              *pbVar31 = 1;\n            }" { (expression_statement "*pbVar31 = 1;" (assignment_expression "*pbVar31 = 1" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) }) (else_clause "else {\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }" else (compound_statement "{\n              if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }\n              *pbVar31 = 0;\n            }" { (if_statement "if (bVar1 != 1) {\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }" if (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) (compound_statement "{\n                pbVar22 = pbVar22 + 1;\n                *pbVar31 = 9 - bVar1;\n                pbVar31 = pbVar31 + 1;\n                if (abStack_cc == pbVar22) break;\n                goto LAB_002177b4;\n              }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar31 = 9 - bVar1;" (assignment_expression "*pbVar31 = 9 - bVar1" (pointer_expression "*pbVar31" * identifier) = (binary_expression "9 - bVar1" number_literal - identifier)) ;) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (if_statement "if (abStack_cc == pbVar22) break;" if (parenthesized_expression "(abStack_cc == pbVar22)" ( (binary_expression "abStack_cc == pbVar22" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_002177b4;" goto statement_identifier ;) })) (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) }))) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(abStack_cc != pbVar22)" ( (binary_expression "abStack_cc != pbVar22" identifier != identifier) )) ;)) })) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_508._0_4_ & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,local_508._0_4_ & 0xff)" ( identifier , (binary_expression "local_508._0_4_ & 0xff" (field_expression "local_508._0_4_" identifier . field_identifier) & number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,local_4dc & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,local_4dc & 0xff)" ( identifier , (binary_expression "local_4dc & 0xff" identifier & number_literal) ))) ;) (do_statement "do {\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        } while (closest != pbVar24);" do (compound_statement "{\n          uVar5 = 0;\n          uVar30 = 0;\n          pbVar22 = pbVar24;\n          do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);\n          pbVar24 = pbVar24 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "pbVar22 = pbVar24;" (assignment_expression "pbVar22 = pbVar24" identifier = identifier) ;) (do_statement "do {\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          } while (uVar5 != 0x18);" do (compound_statement "{\n            bVar1 = *pbVar22;\n            pbVar22 = pbVar22 + 1;\n            uVar27 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar30 = uVar30 | (uint)bVar1 << uVar27;\n          }" { (expression_statement "bVar1 = *pbVar22;" (assignment_expression "bVar1 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "uVar27 = uVar5 & 0x1f;" (assignment_expression "uVar27 = uVar5 & 0x1f" identifier = (binary_expression "uVar5 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar5 = uVar5 + 3;" (assignment_expression "uVar5 = uVar5 + 3" identifier = (binary_expression "uVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar30 = uVar30 | (uint)bVar1 << uVar27;" (assignment_expression "uVar30 = uVar30 | (uint)bVar1 << uVar27" identifier = (binary_expression "uVar30 | (uint)bVar1 << uVar27" identifier | (binary_expression "(uint)bVar1 << uVar27" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << identifier))) ;) }) while (parenthesized_expression "(uVar5 != 0x18)" ( (binary_expression "uVar5 != 0x18" identifier != number_literal) )) ;) (expression_statement "pbVar24 = pbVar24 + 8;" (assignment_expression "pbVar24 = pbVar24 + 8" identifier = (binary_expression "pbVar24 + 8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,uVar30 & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,uVar30 & 0xff)" ( identifier , (binary_expression "uVar30 & 0xff" identifier & number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 0x10) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,(uVar30 << 0x10) >> 0x18)" ( identifier , (binary_expression "(uVar30 << 0x10) >> 0x18" (parenthesized_expression "(uVar30 << 0x10)" ( (binary_expression "uVar30 << 0x10" identifier << number_literal) )) >> number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(image,(uVar30 << 8) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,(uVar30 << 8) >> 0x18)" ( identifier , (binary_expression "(uVar30 << 8) >> 0x18" (parenthesized_expression "(uVar30 << 8)" ( (binary_expression "uVar30 << 8" identifier << number_literal) )) >> number_literal) ))) ;) }) while (parenthesized_expression "(closest != pbVar24)" ( (binary_expression "closest != pbVar24" identifier != identifier) )) ;) }) (else_clause "else {\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" else (compound_statement "{\n        uVar30 = 0;\n        unaff_s0 = (uchar *)0x0;\n        iVar33 = 0;\n        fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar27 = 0xff;\n        fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        piVar26 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }\n        if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "unaff_s0 = (uchar *)0x0;" (assignment_expression "unaff_s0 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar59 = *(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) ))))) ;) (expression_statement "uVar27 = 0xff;" (assignment_expression "uVar27 = 0xff" identifier = number_literal) ;) (expression_statement "fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = 0;" (assignment_expression "local_4dc = 0" identifier = number_literal) ;) (expression_statement "dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);" (assignment_expression "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e5c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e5c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e5c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e5c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e5c" identifier + number_literal) ))))) ;) (expression_statement "piVar26 = unaff_s2;" (assignment_expression "piVar26 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        } while (iVar33 != local_4e4);" do (compound_statement "{\n          if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }\n          iVar33 = iVar33 + 1;\n          piVar26 = piVar26 + 4;\n        }" { (if_statement "if (0 < (int)local_508._0_4_) {\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }" if (parenthesized_expression "(0 < (int)local_508._0_4_)" ( (binary_expression "0 < (int)local_508._0_4_" number_literal < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (compound_statement "{\n            dVar45 = *(double *)(puVar11 + 0x1400);\n            dVar51 = *(double *)(local_50c + -0x5af0);\n            dVar48 = *(double *)(puVar11 + 0x1410);\n            iVar25 = image->number_channels * 4;\n            pPVar17 = image->channel_map;\n            dVar50 = *(double *)(local_4e8 + -0x5ae8);\n            puVar23 = (uint *)(alphas + iVar33 * 4);\n            iVar19 = iVar6;\n            piVar21 = piVar26;\n            do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);\n            iVar6 = iVar25 * local_508._0_4_ + iVar6;\n          }" { (expression_statement "dVar45 = *(double *)(puVar11 + 0x1400);" (assignment_expression "dVar45 = *(double *)(puVar11 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar11 + 0x1400)" * (cast_expression "(double *)(puVar11 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1400)" ( (binary_expression "puVar11 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar51 = *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar51 = *(double *)(local_50c + -0x5af0)" identifier = (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar48 = *(double *)(puVar11 + 0x1410);" (assignment_expression "dVar48 = *(double *)(puVar11 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar11 + 0x1410)" * (cast_expression "(double *)(puVar11 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1410)" ( (binary_expression "puVar11 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = image->number_channels * 4;" (assignment_expression "iVar25 = image->number_channels * 4" identifier = (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) ;) (expression_statement "pPVar17 = image->channel_map;" (assignment_expression "pPVar17 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar50 = *(double *)(local_4e8 + -0x5ae8);" (assignment_expression "dVar50 = *(double *)(local_4e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = (uint *)(alphas + iVar33 * 4);" (assignment_expression "puVar23 = (uint *)(alphas + iVar33 * 4)" identifier = (cast_expression "(uint *)(alphas + iVar33 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(alphas + iVar33 * 4)" ( (binary_expression "alphas + iVar33 * 4" identifier + (binary_expression "iVar33 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar19 = iVar6;" (assignment_expression "iVar19 = iVar6" identifier = identifier) ;) (expression_statement "piVar21 = piVar26;" (assignment_expression "piVar21 = piVar26" identifier = identifier) ;) (do_statement "do {\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            } while (piVar26 + local_508._0_4_ != piVar21);" do (compound_statement "{\n              if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }\n              *puVar23 = uVar15;\n              fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);\n              fVar52 = 0.0;\n              if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);\n              fVar44 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);\n              fVar56 = 0.0;\n              if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar36 = *(float *)(puVar3 + -0x5a8c);\n              if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }\n              iVar19 = iVar19 + iVar25;\n              if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }\n              *piVar21 = (int)unaff_s0;\n              points[(int)unaff_s0].x = fVar52;\n              points[(int)unaff_s0].y = fVar44;\n              points[(int)unaff_s0].z = fVar56;\n              points[(int)unaff_s0].w = fVar36;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              piVar21 = piVar21 + 1;\n              puVar23 = puVar23 + 1;\n            }" { (if_statement "if (compression == 0x35545844) {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar15 = 0xff;\n              }" if (parenthesized_expression "(compression == 0x35545844)" ( (binary_expression "compression == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }\n              }" { (if_statement "if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }\n                else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(image->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_00216c58:\n                  uVar15 = 0xff;\n                  uVar30 = 0xff;\n                }" { (labeled_statement "LAB_00216c58:\n                  uVar15 = 0xff;" statement_identifier : (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;)) (expression_statement "uVar30 = 0xff;" (assignment_expression "uVar30 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);\n                  if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }\n                }" { (expression_statement "fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4);" (assignment_expression "fVar52 = *(float *)(iVar19 + image->channel_map[4].offset * 4)" identifier = (pointer_expression "*(float *)(iVar19 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar19 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar19 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar52 <= 0.0) {\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar52 <= 0.0)" ( (binary_expression "fVar52 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar15 = 0;\n                    uVar5 = 0;\n                  }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar34 = (double)fVar52 / dVar51;\n                    if (dVar50 <= dVar34) goto LAB_00216c58;\n                    dVar34 = dVar34 + dVar45;\n                    if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }\n                    uVar15 = (int)dVar34 & 0xff;\n                    if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }\n                    if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }\n                    if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }\n                  }" { (expression_statement "dVar34 = (double)fVar52 / dVar51;" (assignment_expression "dVar34 = (double)fVar52 / dVar51" identifier = (binary_expression "(double)fVar52 / dVar51" (cast_expression "(double)fVar52" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar50 <= dVar34) goto LAB_00216c58;" if (parenthesized_expression "(dVar50 <= dVar34)" ( (binary_expression "dVar50 <= dVar34" identifier <= identifier) )) (goto_statement "goto LAB_00216c58;" goto statement_identifier ;)) (expression_statement "dVar34 = dVar34 + dVar45;" (assignment_expression "dVar34 = dVar34 + dVar45" identifier = (binary_expression "dVar34 + dVar45" identifier + identifier)) ;) (if_statement "if (dVar48 <= dVar34) {\n                      dVar34 = dVar34 - dVar48;\n                    }" if (parenthesized_expression "(dVar48 <= dVar34)" ( (binary_expression "dVar48 <= dVar34" identifier <= identifier) )) (compound_statement "{\n                      dVar34 = dVar34 - dVar48;\n                    }" { (expression_statement "dVar34 = dVar34 - dVar48;" (assignment_expression "dVar34 = dVar34 - dVar48" identifier = (binary_expression "dVar34 - dVar48" identifier - identifier)) ;) })) (expression_statement "uVar15 = (int)dVar34 & 0xff;" (assignment_expression "uVar15 = (int)dVar34 & 0xff" identifier = (binary_expression "(int)dVar34 & 0xff" (cast_expression "(int)dVar34" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) (if_statement "if (uVar15 < uVar5) {\n                      uVar5 = uVar15;\n                    }" if (parenthesized_expression "(uVar15 < uVar5)" ( (binary_expression "uVar15 < uVar5" identifier < identifier) )) (compound_statement "{\n                      uVar5 = uVar15;\n                    }" { (expression_statement "uVar5 = uVar15;" (assignment_expression "uVar5 = uVar15" identifier = identifier) ;) })) (if_statement "if (uVar30 < uVar15) {\n                      uVar30 = uVar15;\n                    }" if (parenthesized_expression "(uVar30 < uVar15)" ( (binary_expression "uVar30 < uVar15" identifier < identifier) )) (compound_statement "{\n                      uVar30 = uVar15;\n                    }" { (expression_statement "uVar30 = uVar15;" (assignment_expression "uVar30 = uVar15" identifier = identifier) ;) })) (if_statement "if (uVar15 != 0) {\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                      if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }\n                      if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }\n                    }" { (if_statement "if (uVar15 < uVar27) {\n                        uVar27 = uVar15;\n                      }" if (parenthesized_expression "(uVar15 < uVar27)" ( (binary_expression "uVar15 < uVar27" identifier < identifier) )) (compound_statement "{\n                        uVar27 = uVar15;\n                      }" { (expression_statement "uVar27 = uVar15;" (assignment_expression "uVar27 = uVar15" identifier = identifier) ;) })) (if_statement "if ((uVar15 != 0xff) && (local_4dc < uVar15)) {\n                        local_4dc = uVar15;\n                      }" if (parenthesized_expression "((uVar15 != 0xff) && (local_4dc < uVar15))" ( (binary_expression "(uVar15 != 0xff) && (local_4dc < uVar15)" (parenthesized_expression "(uVar15 != 0xff)" ( (binary_expression "uVar15 != 0xff" identifier != number_literal) )) && (parenthesized_expression "(local_4dc < uVar15)" ( (binary_expression "local_4dc < uVar15" identifier < identifier) ))) )) (compound_statement "{\n                        local_4dc = uVar15;\n                      }" { (expression_statement "local_4dc = uVar15;" (assignment_expression "local_4dc = uVar15" identifier = identifier) ;) })) })) }))) }))) }) (else_clause "else {\n                uVar15 = 0xff;\n              }" else (compound_statement "{\n                uVar15 = 0xff;\n              }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }))) (expression_statement "*puVar23 = uVar15;" (assignment_expression "*puVar23 = uVar15" (pointer_expression "*puVar23" * identifier) = identifier) ;) (expression_statement "fVar36 = *(float *)(iVar19 + pPVar17->offset * 4);" (assignment_expression "fVar36 = *(float *)(iVar19 + pPVar17->offset * 4)" identifier = (pointer_expression "*(float *)(iVar19 + pPVar17->offset * 4)" * (cast_expression "(float *)(iVar19 + pPVar17->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + pPVar17->offset * 4)" ( (binary_expression "iVar19 + pPVar17->offset * 4" identifier + (binary_expression "pPVar17->offset * 4" (field_expression "pPVar17->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (expression_statement "fVar52 = 0.0;" (assignment_expression "fVar52 = 0.0" identifier = number_literal) ;) (if_statement "if ((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)) {\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }" if (parenthesized_expression "((0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50))" ( (binary_expression "(0.0 < fVar36) &&\n                 (dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)" (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) )) && (parenthesized_expression "(dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50)" ( (comma_expression "dVar34 = (double)fVar36 / dVar51, fVar52 = fVar35, dVar34 < dVar50" (assignment_expression "dVar34 = (double)fVar36 / dVar51" identifier = (binary_expression "(double)fVar36 / dVar51" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) , (comma_expression "fVar52 = fVar35, dVar34 < dVar50" (assignment_expression "fVar52 = fVar35" identifier = identifier) , (binary_expression "dVar34 < dVar50" identifier < identifier))) ))) )) (compound_statement "{\n                dVar34 = dVar34 + dVar45;\n                if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }\n                fVar52 = (float)((int)dVar34 & 0xff) / fVar57;\n              }" { (expression_statement "dVar34 = dVar34 + dVar45;" (assignment_expression "dVar34 = dVar34 + dVar45" identifier = (binary_expression "dVar34 + dVar45" identifier + identifier)) ;) (if_statement "if (dVar59 <= dVar34) {\n                  dVar34 = dVar34 - dVar59;\n                }" if (parenthesized_expression "(dVar59 <= dVar34)" ( (binary_expression "dVar59 <= dVar34" identifier <= identifier) )) (compound_statement "{\n                  dVar34 = dVar34 - dVar59;\n                }" { (expression_statement "dVar34 = dVar34 - dVar59;" (assignment_expression "dVar34 = dVar34 - dVar59" identifier = (binary_expression "dVar34 - dVar59" identifier - identifier)) ;) })) (expression_statement "fVar52 = (float)((int)dVar34 & 0xff) / fVar57;" (assignment_expression "fVar52 = (float)((int)dVar34 & 0xff) / fVar57" identifier = (binary_expression "(float)((int)dVar34 & 0xff) / fVar57" (cast_expression "(float)((int)dVar34 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar34 & 0xff)" ( (binary_expression "(int)dVar34 & 0xff" (cast_expression "(int)dVar34" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / identifier)) ;) })) (expression_statement "fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4);" (assignment_expression "fVar36 = *(float *)(iVar19 + pPVar17[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar19 + pPVar17[1].offset * 4)" * (cast_expression "(float *)(iVar19 + pPVar17[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + pPVar17[1].offset * 4)" ( (binary_expression "iVar19 + pPVar17[1].offset * 4" identifier + (binary_expression "pPVar17[1].offset * 4" (field_expression "pPVar17[1].offset" (subscript_expression "pPVar17[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "fVar44 = 0.0;" (assignment_expression "fVar44 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) )) (compound_statement "{\n                dVar34 = (double)fVar36 / local_500;\n                fVar44 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar34 = (double)fVar36 / local_500;" (assignment_expression "dVar34 = (double)fVar36 / local_500" identifier = (binary_expression "(double)fVar36 / local_500" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (expression_statement "fVar44 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar44 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar34 < local_4f8) {\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar34 < local_4f8)" ( (binary_expression "dVar34 < local_4f8" identifier < identifier) )) (compound_statement "{\n                  dVar34 = dVar34 + dVar58;\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar34 = dVar34 + dVar58;" (assignment_expression "dVar34 = dVar34 + dVar58" identifier = (binary_expression "dVar34 + dVar58" identifier + identifier)) ;) (if_statement "if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar11 + 0x1410) <= dVar34)" ( (binary_expression "*(double *)(puVar11 + 0x1410) <= dVar34" (pointer_expression "*(double *)(puVar11 + 0x1410)" * (cast_expression "(double *)(puVar11 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1410)" ( (binary_expression "puVar11 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }" { (expression_statement "dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);" (assignment_expression "dVar34 = dVar34 - *(double *)(puVar11 + 0x1410)" identifier = (binary_expression "dVar34 - *(double *)(puVar11 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar11 + 0x1410)" * (cast_expression "(double *)(puVar11 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1410)" ( (binary_expression "puVar11 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar44 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar34 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar34 & 0xff)" ( (binary_expression "(int)dVar34 & 0xff" (cast_expression "(int)dVar34" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4);" (assignment_expression "fVar36 = *(float *)(iVar19 + pPVar17[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar19 + pPVar17[2].offset * 4)" * (cast_expression "(float *)(iVar19 + pPVar17[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + pPVar17[2].offset * 4)" ( (binary_expression "iVar19 + pPVar17[2].offset * 4" identifier + (binary_expression "pPVar17[2].offset * 4" (field_expression "pPVar17[2].offset" (subscript_expression "pPVar17[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "fVar56 = 0.0;" (assignment_expression "fVar56 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar36) {\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar36)" ( (binary_expression "0.0 < fVar36" number_literal < identifier) )) (compound_statement "{\n                dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);\n                fVar56 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar34 = (double)fVar36 / *(double *)(local_50c + -0x5af0)" identifier = (binary_expression "(double)fVar36 / *(double *)(local_50c + -0x5af0)" (cast_expression "(double)fVar36" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "fVar56 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar56 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar34 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar34 < *(double *)(local_4e8 + -0x5ae8))" ( (binary_expression "dVar34 < *(double *)(local_4e8 + -0x5ae8)" identifier < (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                  dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);\n                  if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }\n                  fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar34 = dVar34 + *(double *)(puVar11 + 0x1400);" (assignment_expression "dVar34 = dVar34 + *(double *)(puVar11 + 0x1400)" identifier = (binary_expression "dVar34 + *(double *)(puVar11 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar11 + 0x1400)" * (cast_expression "(double *)(puVar11 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1400)" ( (binary_expression "puVar11 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(puVar11 + 0x1410) <= dVar34) {\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar11 + 0x1410) <= dVar34)" ( (binary_expression "*(double *)(puVar11 + 0x1410) <= dVar34" (pointer_expression "*(double *)(puVar11 + 0x1410)" * (cast_expression "(double *)(puVar11 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1410)" ( (binary_expression "puVar11 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);\n                  }" { (expression_statement "dVar34 = dVar34 - *(double *)(puVar11 + 0x1410);" (assignment_expression "dVar34 = dVar34 - *(double *)(puVar11 + 0x1410)" identifier = (binary_expression "dVar34 - *(double *)(puVar11 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar11 + 0x1410)" * (cast_expression "(double *)(puVar11 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1410)" ( (binary_expression "puVar11 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar56 = (float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar34 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar34 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar34 & 0xff)" ( (binary_expression "(int)dVar34 & 0xff" (cast_expression "(int)dVar34" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar36 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar36 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (weightByAlpha != MagickFalse) {\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }" if (parenthesized_expression "(weightByAlpha != MagickFalse)" ( (binary_expression "weightByAlpha != MagickFalse" identifier != identifier) )) (compound_statement "{\n                fVar36 = (float)(uVar15 + 1) * fVar55;\n              }" { (expression_statement "fVar36 = (float)(uVar15 + 1) * fVar55;" (assignment_expression "fVar36 = (float)(uVar15 + 1) * fVar55" identifier = (binary_expression "(float)(uVar15 + 1) * fVar55" (cast_expression "(float)(uVar15 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) ))) * identifier)) ;) })) (expression_statement "iVar19 = iVar19 + iVar25;" (assignment_expression "iVar19 = iVar19 + iVar25" identifier = (binary_expression "iVar19 + iVar25" identifier + identifier)) ;) (if_statement "if (0 < (int)unaff_s0) {\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar13 = (uchar *)0x0;\n                pDVar39 = unaff_s4;\n                do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);\n              }" { (expression_statement "puVar13 = (uchar *)0x0;" (assignment_expression "puVar13 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pDVar39 = unaff_s4;" (assignment_expression "pDVar39 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar13 != unaff_s0);" do (compound_statement "{\n                  if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }\n                  puVar13 = puVar13 + 1;\n                  pDVar39 = pDVar39 + 1;\n                }" { (if_statement "if ((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))) {\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }" if (parenthesized_expression "((((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844))))" ( (binary_expression "(((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))\n                     && (((char)uVar15 < '\0' || (compression == 0x35545844)))" (parenthesized_expression "(((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56))" ( (binary_expression "((pDVar39->x == fVar52) && (pDVar39->y == fVar44)) && (pDVar39->z == fVar56)" (parenthesized_expression "((pDVar39->x == fVar52) && (pDVar39->y == fVar44))" ( (binary_expression "(pDVar39->x == fVar52) && (pDVar39->y == fVar44)" (parenthesized_expression "(pDVar39->x == fVar52)" ( (binary_expression "pDVar39->x == fVar52" (field_expression "pDVar39->x" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(pDVar39->y == fVar44)" ( (binary_expression "pDVar39->y == fVar44" (field_expression "pDVar39->y" identifier -> field_identifier) == identifier) ))) )) && (parenthesized_expression "(pDVar39->z == fVar56)" ( (binary_expression "pDVar39->z == fVar56" (field_expression "pDVar39->z" identifier -> field_identifier) == identifier) ))) )) && (parenthesized_expression "(((char)uVar15 < '\0' || (compression == 0x35545844)))" ( (parenthesized_expression "((char)uVar15 < '\0' || (compression == 0x35545844))" ( (binary_expression "(char)uVar15 < '\0' || (compression == 0x35545844)" (binary_expression "(char)uVar15 < '\0'" (cast_expression "(char)uVar15" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(compression == 0x35545844)" ( (binary_expression "compression == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                    *piVar21 = (int)puVar13;\n                    points[(int)puVar13].w = points[(int)puVar13].w + fVar36;\n                    goto LAB_002164d0;\n                  }" { (expression_statement "*piVar21 = (int)puVar13;" (assignment_expression "*piVar21 = (int)puVar13" (pointer_expression "*piVar21" * identifier) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "points[(int)puVar13].w = points[(int)puVar13].w + fVar36;" (assignment_expression "points[(int)puVar13].w = points[(int)puVar13].w + fVar36" (field_expression "points[(int)puVar13].w" (subscript_expression "points[(int)puVar13]" identifier [ (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (binary_expression "points[(int)puVar13].w + fVar36" (field_expression "points[(int)puVar13].w" (subscript_expression "points[(int)puVar13]" identifier [ (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) + identifier)) ;) (goto_statement "goto LAB_002164d0;" goto statement_identifier ;) })) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "pDVar39 = pDVar39 + 1;" (assignment_expression "pDVar39 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != unaff_s0)" ( (binary_expression "puVar13 != unaff_s0" identifier != identifier) )) ;) })) (expression_statement "*piVar21 = (int)unaff_s0;" (assignment_expression "*piVar21 = (int)unaff_s0" (pointer_expression "*piVar21" * identifier) = (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "points[(int)unaff_s0].x = fVar52;" (assignment_expression "points[(int)unaff_s0].x = fVar52" (field_expression "points[(int)unaff_s0].x" (subscript_expression "points[(int)unaff_s0]" identifier [ (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)unaff_s0].y = fVar44;" (assignment_expression "points[(int)unaff_s0].y = fVar44" (field_expression "points[(int)unaff_s0].y" (subscript_expression "points[(int)unaff_s0]" identifier [ (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)unaff_s0].z = fVar56;" (assignment_expression "points[(int)unaff_s0].z = fVar56" (field_expression "points[(int)unaff_s0].z" (subscript_expression "points[(int)unaff_s0]" identifier [ (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)unaff_s0].w = fVar36;" (assignment_expression "points[(int)unaff_s0].w = fVar36" (field_expression "points[(int)unaff_s0].w" (subscript_expression "points[(int)unaff_s0]" identifier [ (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_002164d0:\n              piVar21 = piVar21 + 1;" statement_identifier : (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;)) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar26 + local_508._0_4_ != piVar21)" ( (binary_expression "piVar26 + local_508._0_4_ != piVar21" (binary_expression "piVar26 + local_508._0_4_" identifier + (field_expression "local_508._0_4_" identifier . field_identifier)) != identifier) )) ;) (expression_statement "iVar6 = iVar25 * local_508._0_4_ + iVar6;" (assignment_expression "iVar6 = iVar25 * local_508._0_4_ + iVar6" identifier = (binary_expression "iVar25 * local_508._0_4_ + iVar6" (binary_expression "iVar25 * local_508._0_4_" identifier * (field_expression "local_508._0_4_" identifier . field_identifier)) + identifier)) ;) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 4;" (assignment_expression "piVar26 = piVar26 + 4" identifier = (binary_expression "piVar26 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != local_4e4)" ( (binary_expression "iVar33 != local_4e4" identifier != identifier) )) ;) (if_statement "if (0 < (int)unaff_s0) {\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar49 = 0;\n          pfVar29 = &points[0].w;\n          pfVar8 = pfVar29 + (int)unaff_s0 * 4;\n          do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);\n        }" { (expression_statement "uVar49 = 0;" (assignment_expression "uVar49 = 0" identifier = number_literal) ;) (expression_statement "pfVar29 = &points[0].w;" (assignment_expression "pfVar29 = &points[0].w" identifier = (pointer_expression "&points[0].w" & (field_expression "points[0].w" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pfVar8 = pfVar29 + (int)unaff_s0 * 4;" (assignment_expression "pfVar8 = pfVar29 + (int)unaff_s0 * 4" identifier = (binary_expression "pfVar29 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          } while (pfVar8 != pfVar29);" do (compound_statement "{\n            fVar35 = SQRT(*pfVar29);\n            if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar29 = fVar35;\n            pfVar29 = pfVar29 + 4;\n          }" { (expression_statement "fVar35 = SQRT(*pfVar29);" (assignment_expression "fVar35 = SQRT(*pfVar29)" identifier = (call_expression "SQRT(*pfVar29)" identifier (argument_list "(*pfVar29)" ( (pointer_expression "*pfVar29" * identifier) )))) ;) (if_statement "if (*pfVar29 < (float)uVar49) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" if (parenthesized_expression "(*pfVar29 < (float)uVar49)" ( (binary_expression "*pfVar29 < (float)uVar49" (pointer_expression "*pfVar29" * identifier) < (cast_expression "(float)uVar49" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" { (expression_statement "(*(code *)PTR_sqrtf_003a9800)();" (call_expression "(*(code *)PTR_sqrtf_003a9800)()" (parenthesized_expression "(*(code *)PTR_sqrtf_003a9800)" ( (pointer_expression "*(code *)PTR_sqrtf_003a9800" * (cast_expression "(code *)PTR_sqrtf_003a9800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*pfVar29 = fVar35;" (assignment_expression "*pfVar29 = fVar35" (pointer_expression "*pfVar29" * identifier) = identifier) ;) (expression_statement "pfVar29 = pfVar29 + 4;" (assignment_expression "pfVar29 = pfVar29 + 4" identifier = (binary_expression "pfVar29 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar8 != pfVar29)" ( (binary_expression "pfVar8 != pfVar29" identifier != identifier) )) ;) })) (if_statement "if (compression == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" if (parenthesized_expression "(compression == 0x35545844)" ( (binary_expression "compression == 0x35545844" identifier == number_literal) )) (compound_statement "{\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" { (expression_statement "local_508._0_4_ = local_4dc;" (assignment_expression "local_508._0_4_ = local_4dc" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" if (parenthesized_expression "((local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5))" ( (binary_expression "(local_4dc < uVar27) || (local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)" (parenthesized_expression "(local_4dc < uVar27)" ( (binary_expression "local_4dc < uVar27" identifier < identifier) )) || (parenthesized_expression "(local_508._0_4_ = uVar27, local_4dc - uVar27 < 5)" ( (comma_expression "local_508._0_4_ = uVar27, local_4dc - uVar27 < 5" (assignment_expression "local_508._0_4_ = uVar27" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) , (binary_expression "local_4dc - uVar27 < 5" (binary_expression "local_4dc - uVar27" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" { (expression_statement "local_4dc = local_508._0_4_ + 5;" (assignment_expression "local_4dc = local_508._0_4_ + 5" identifier = (binary_expression "local_508._0_4_ + 5" (field_expression "local_508._0_4_" identifier . field_identifier) + number_literal)) ;) (if_statement "if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }" if (parenthesized_expression "(0xff < local_4dc)" ( (binary_expression "0xff < local_4dc" number_literal < identifier) )) (compound_statement "{\n              local_4dc = 0xff;\n            }" { (expression_statement "local_4dc = 0xff;" (assignment_expression "local_4dc = 0xff" identifier = number_literal) ;) })) (if_statement "if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }" if (parenthesized_expression "(local_4dc - local_508._0_4_ < 5)" ( (binary_expression "local_4dc - local_508._0_4_ < 5" (binary_expression "local_4dc - local_508._0_4_" identifier - (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n              local_508._0_4_ = local_4dc - 5;\n            }" { (expression_statement "local_508._0_4_ = local_4dc - 5;" (assignment_expression "local_508._0_4_ = local_4dc - 5" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_4dc - 5" identifier - number_literal)) ;) })) })) (goto_statement "goto LAB_002176f8;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s3 = unaff_s0;" (assignment_expression "unaff_s3 = unaff_s0" identifier = identifier) ;) (if_statement "if (unaff_s0 != (uchar *)0x1) {\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }" if (parenthesized_expression "(unaff_s0 != (uchar *)0x1)" ( (binary_expression "unaff_s0 != (uchar *)0x1" identifier != (cast_expression "(uchar *)0x1" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        start.z = 0.0;\n        start.y = 0.0;\n        start.x = 0.0;\n        end.z = 0.0;\n        end.y = 0.0;\n        end.x = 0.0;\n        if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;\n        fVar55 = 0.0;\n        fVar57 = 0.0;\n        fVar52 = 0.0;\n        fVar35 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }\n        fVar54 = 0.0;\n        fVar53 = 0.0;\n        fVar56 = 0.0;\n        fVar35 = 0.0;\n        fVar44 = 0.0;\n        fVar36 = 0.0;\n        pDVar39 = unaff_s4;\n        do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );\n      }" { (expression_statement "start.z = 0.0;" (assignment_expression "start.z = 0.0" (field_expression "start.z" identifier . field_identifier) = number_literal) ;) (expression_statement "start.y = 0.0;" (assignment_expression "start.y = 0.0" (field_expression "start.y" identifier . field_identifier) = number_literal) ;) (expression_statement "start.x = 0.0;" (assignment_expression "start.x = 0.0" (field_expression "start.x" identifier . field_identifier) = number_literal) ;) (expression_statement "end.z = 0.0;" (assignment_expression "end.z = 0.0" (field_expression "end.z" identifier . field_identifier) = number_literal) ;) (expression_statement "end.y = 0.0;" (assignment_expression "end.y = 0.0" (field_expression "end.y" identifier . field_identifier) = number_literal) ;) (expression_statement "end.x = 0.0;" (assignment_expression "end.x = 0.0" (field_expression "end.x" identifier . field_identifier) = number_literal) ;) (if_statement "if (unaff_s0 == (uchar *)0x0) goto LAB_0021703c;" if (parenthesized_expression "(unaff_s0 == (uchar *)0x0)" ( (binary_expression "unaff_s0 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;)) (expression_statement "fVar55 = 0.0;" (assignment_expression "fVar55 = 0.0" identifier = number_literal) ;) (expression_statement "fVar57 = 0.0;" (assignment_expression "fVar57 = 0.0" identifier = number_literal) ;) (expression_statement "fVar52 = 0.0;" (assignment_expression "fVar52 = 0.0" identifier = number_literal) ;) (expression_statement "fVar35 = 0.0;" (assignment_expression "fVar35 = 0.0" identifier = number_literal) ;) (expression_statement "pDVar39 = unaff_s4;" (assignment_expression "pDVar39 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        } while (unaff_s4 + (int)unaff_s0 != pDVar43);" do (compound_statement "{\n          fVar36 = pDVar39->w;\n          pDVar43 = pDVar39 + 1;\n          fVar35 = fVar35 + fVar36;\n          fVar52 = fVar36 * pDVar39->x + fVar52;\n          fVar57 = fVar36 * pDVar39->y + fVar57;\n          fVar55 = fVar36 * pDVar39->z + fVar55;\n          pDVar39 = pDVar43;\n        }" { (expression_statement "fVar36 = pDVar39->w;" (assignment_expression "fVar36 = pDVar39->w" identifier = (field_expression "pDVar39->w" identifier -> field_identifier)) ;) (expression_statement "pDVar43 = pDVar39 + 1;" (assignment_expression "pDVar43 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) (expression_statement "fVar35 = fVar35 + fVar36;" (assignment_expression "fVar35 = fVar35 + fVar36" identifier = (binary_expression "fVar35 + fVar36" identifier + identifier)) ;) (expression_statement "fVar52 = fVar36 * pDVar39->x + fVar52;" (assignment_expression "fVar52 = fVar36 * pDVar39->x + fVar52" identifier = (binary_expression "fVar36 * pDVar39->x + fVar52" (binary_expression "fVar36 * pDVar39->x" identifier * (field_expression "pDVar39->x" identifier -> field_identifier)) + identifier)) ;) (expression_statement "fVar57 = fVar36 * pDVar39->y + fVar57;" (assignment_expression "fVar57 = fVar36 * pDVar39->y + fVar57" identifier = (binary_expression "fVar36 * pDVar39->y + fVar57" (binary_expression "fVar36 * pDVar39->y" identifier * (field_expression "pDVar39->y" identifier -> field_identifier)) + identifier)) ;) (expression_statement "fVar55 = fVar36 * pDVar39->z + fVar55;" (assignment_expression "fVar55 = fVar36 * pDVar39->z + fVar55" identifier = (binary_expression "fVar36 * pDVar39->z + fVar55" (binary_expression "fVar36 * pDVar39->z" identifier * (field_expression "pDVar39->z" identifier -> field_identifier)) + identifier)) ;) (expression_statement "pDVar39 = pDVar43;" (assignment_expression "pDVar39 = pDVar43" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s4 + (int)unaff_s0 != pDVar43)" ( (binary_expression "unaff_s4 + (int)unaff_s0 != pDVar43" (binary_expression "unaff_s4 + (int)unaff_s0" identifier + (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) (if_statement "if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35) {\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }" if (parenthesized_expression "(*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35)" ( (binary_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar35" (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e58)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e58)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e58" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          fVar52 = fVar52 / fVar35;\n          fVar57 = fVar57 / fVar35;\n          fVar55 = fVar55 / fVar35;\n        }" { (expression_statement "fVar52 = fVar52 / fVar35;" (assignment_expression "fVar52 = fVar52 / fVar35" identifier = (binary_expression "fVar52 / fVar35" identifier / identifier)) ;) (expression_statement "fVar57 = fVar57 / fVar35;" (assignment_expression "fVar57 = fVar57 / fVar35" identifier = (binary_expression "fVar57 / fVar35" identifier / identifier)) ;) (expression_statement "fVar55 = fVar55 / fVar35;" (assignment_expression "fVar55 = fVar55 / fVar35" identifier = (binary_expression "fVar55 / fVar35" identifier / identifier)) ;) })) (expression_statement "fVar54 = 0.0;" (assignment_expression "fVar54 = 0.0" identifier = number_literal) ;) (expression_statement "fVar53 = 0.0;" (assignment_expression "fVar53 = 0.0" identifier = number_literal) ;) (expression_statement "fVar56 = 0.0;" (assignment_expression "fVar56 = 0.0" identifier = number_literal) ;) (expression_statement "fVar35 = 0.0;" (assignment_expression "fVar35 = 0.0" identifier = number_literal) ;) (expression_statement "fVar44 = 0.0;" (assignment_expression "fVar44 = 0.0" identifier = number_literal) ;) (expression_statement "fVar36 = 0.0;" (assignment_expression "fVar36 = 0.0" identifier = number_literal) ;) (expression_statement "pDVar39 = unaff_s4;" (assignment_expression "pDVar39 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        } while( true );" do (compound_statement "{\n          pDVar43 = pDVar39 + 1;\n          fVar40 = pDVar39->x - fVar52;\n          fVar37 = pDVar39->w;\n          fVar42 = pDVar39->y - fVar57;\n          fVar46 = pDVar39->z - fVar55;\n          fVar38 = fVar46 * fVar37;\n          fVar36 = fVar40 * fVar37 * fVar40 + fVar36;\n          fVar44 = fVar40 * fVar42 * fVar37 + fVar44;\n          fVar35 = fVar40 * fVar38 + fVar35;\n          fVar56 = fVar42 * fVar42 * fVar37 + fVar56;\n          fVar53 = fVar42 * fVar38 + fVar53;\n          fVar54 = fVar46 * fVar38 + fVar54;\n          pDVar39 = pDVar43;\n          if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;\n        }" { (expression_statement "pDVar43 = pDVar39 + 1;" (assignment_expression "pDVar43 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) (expression_statement "fVar40 = pDVar39->x - fVar52;" (assignment_expression "fVar40 = pDVar39->x - fVar52" identifier = (binary_expression "pDVar39->x - fVar52" (field_expression "pDVar39->x" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar37 = pDVar39->w;" (assignment_expression "fVar37 = pDVar39->w" identifier = (field_expression "pDVar39->w" identifier -> field_identifier)) ;) (expression_statement "fVar42 = pDVar39->y - fVar57;" (assignment_expression "fVar42 = pDVar39->y - fVar57" identifier = (binary_expression "pDVar39->y - fVar57" (field_expression "pDVar39->y" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar46 = pDVar39->z - fVar55;" (assignment_expression "fVar46 = pDVar39->z - fVar55" identifier = (binary_expression "pDVar39->z - fVar55" (field_expression "pDVar39->z" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar38 = fVar46 * fVar37;" (assignment_expression "fVar38 = fVar46 * fVar37" identifier = (binary_expression "fVar46 * fVar37" identifier * identifier)) ;) (expression_statement "fVar36 = fVar40 * fVar37 * fVar40 + fVar36;" (assignment_expression "fVar36 = fVar40 * fVar37 * fVar40 + fVar36" identifier = (binary_expression "fVar40 * fVar37 * fVar40 + fVar36" (binary_expression "fVar40 * fVar37 * fVar40" (binary_expression "fVar40 * fVar37" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar44 = fVar40 * fVar42 * fVar37 + fVar44;" (assignment_expression "fVar44 = fVar40 * fVar42 * fVar37 + fVar44" identifier = (binary_expression "fVar40 * fVar42 * fVar37 + fVar44" (binary_expression "fVar40 * fVar42 * fVar37" (binary_expression "fVar40 * fVar42" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar35 = fVar40 * fVar38 + fVar35;" (assignment_expression "fVar35 = fVar40 * fVar38 + fVar35" identifier = (binary_expression "fVar40 * fVar38 + fVar35" (binary_expression "fVar40 * fVar38" identifier * identifier) + identifier)) ;) (expression_statement "fVar56 = fVar42 * fVar42 * fVar37 + fVar56;" (assignment_expression "fVar56 = fVar42 * fVar42 * fVar37 + fVar56" identifier = (binary_expression "fVar42 * fVar42 * fVar37 + fVar56" (binary_expression "fVar42 * fVar42 * fVar37" (binary_expression "fVar42 * fVar42" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar53 = fVar42 * fVar38 + fVar53;" (assignment_expression "fVar53 = fVar42 * fVar38 + fVar53" identifier = (binary_expression "fVar42 * fVar38 + fVar53" (binary_expression "fVar42 * fVar38" identifier * identifier) + identifier)) ;) (expression_statement "fVar54 = fVar46 * fVar38 + fVar54;" (assignment_expression "fVar54 = fVar46 * fVar38 + fVar54" identifier = (binary_expression "fVar46 * fVar38 + fVar54" (binary_expression "fVar46 * fVar38" identifier * identifier) + identifier)) ;) (expression_statement "pDVar39 = pDVar43;" (assignment_expression "pDVar39 = pDVar43" identifier = identifier) ;) (if_statement "if (unaff_s4 + (int)unaff_s0 == pDVar43) goto LAB_0021663c;" if (parenthesized_expression "(unaff_s4 + (int)unaff_s0 == pDVar43)" ( (binary_expression "unaff_s4 + (int)unaff_s0 == pDVar43" (binary_expression "unaff_s4 + (int)unaff_s0" identifier + (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_0021663c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar57 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = (uint)(points[0].y * fVar57 + fVar55);" (assignment_expression "uVar15 = (uint)(points[0].y * fVar57 + fVar55)" identifier = (call_expression "(uint)(points[0].y * fVar57 + fVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(points[0].y * fVar57 + fVar55)" ( (binary_expression "points[0].y * fVar57 + fVar55" (binary_expression "points[0].y * fVar57" (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) * identifier) + identifier) )))) ;) (expression_statement "uVar27 = (uint)(points[0].z * fVar57 + fVar55);" (assignment_expression "uVar27 = (uint)(points[0].z * fVar57 + fVar55)" identifier = (call_expression "(uint)(points[0].z * fVar57 + fVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(points[0].z * fVar57 + fVar55)" ( (binary_expression "points[0].z * fVar57 + fVar55" (binary_expression "points[0].z * fVar57" (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) * identifier) + identifier) )))) ;) (expression_statement "uVar30 = (uint)(points[0].x * fVar57 + fVar55);" (assignment_expression "uVar30 = (uint)(points[0].x * fVar57 + fVar55)" identifier = (call_expression "(uint)(points[0].x * fVar57 + fVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(points[0].x * fVar57 + fVar55)" ( (binary_expression "points[0].x * fVar57 + fVar55" (binary_expression "points[0].x * fVar57" (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) * identifier) + identifier) )))) ;) (if_statement "if (0xff < uVar15) {\n        uVar15 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar15)" ( (binary_expression "0xff < uVar15" number_literal < identifier) )) (compound_statement "{\n        uVar15 = 0xff;\n      }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar27) {\n        uVar27 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar27)" ( (binary_expression "0xff < uVar27" number_literal < identifier) )) (compound_statement "{\n        uVar27 = 0xff;\n      }" { (expression_statement "uVar27 = 0xff;" (assignment_expression "uVar27 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar30) {\n        uVar30 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar30)" ( (binary_expression "0xff < uVar30" number_literal < identifier) )) (compound_statement "{\n        uVar30 = 0xff;\n      }" { (expression_statement "uVar30 = 0xff;" (assignment_expression "uVar30 = 0xff" identifier = number_literal) ;) })) (expression_statement "indices[2] = (uchar)uVar27;" (assignment_expression "indices[2] = (uchar)uVar27" (subscript_expression "indices[2]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar27" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "indices[1] = (uchar)uVar15;" (assignment_expression "indices[1] = (uchar)uVar15" (subscript_expression "indices[1]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar15" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "indices[0] = (uchar)uVar30;" (assignment_expression "indices[0] = (uchar)uVar30" (subscript_expression "indices[0]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar30" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar19 = iVar33 * 3;\n        pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);\n        pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);\n        uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];\n        if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }\n        if (iVar33 == 1) break;\n        iVar33 = 1;\n      }" { (expression_statement "iVar19 = iVar33 * 3;" (assignment_expression "iVar19 = iVar33 * 3" identifier = (binary_expression "iVar33 * 3" identifier * number_literal)) ;) (expression_statement "pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19);" (assignment_expression "pbVar31 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6 + iVar19" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar15 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x78cc" identifier + number_literal) )))) + (binary_expression "(uVar15 & 0xff) * 6" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19);" (assignment_expression "pbVar22 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6 + iVar19" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar27 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78c8)" ( (binary_expression "PTR_DAT_003a88cc + -0x78c8" identifier + number_literal) )))) + (binary_expression "(uVar27 & 0xff) * 6" (parenthesized_expression "(uVar27 & 0xff)" ( (binary_expression "uVar27 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19);" (assignment_expression "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6 + iVar19" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar30 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x78d0" identifier + number_literal) )))) + (binary_expression "(uVar30 & 0xff) * 6" (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2];" (assignment_expression "uVar60 = (uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2]" identifier = (binary_expression "(uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2] +\n                 (uint)pbVar24[2] * (uint)pbVar24[2]" (binary_expression "(uint)pbVar31[2] * (uint)pbVar31[2] + (uint)pbVar22[2] * (uint)pbVar22[2]" (binary_expression "(uint)pbVar31[2] * (uint)pbVar31[2]" (cast_expression "(uint)pbVar31[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar31[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar31[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar31[2]" identifier [ number_literal ]))) + (binary_expression "(uint)pbVar22[2] * (uint)pbVar22[2]" (cast_expression "(uint)pbVar22[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar22[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[2]" identifier [ number_literal ])))) + (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2]" (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ]))))) ;) (if_statement "if (uVar60 <= uVar5) {\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }" if (parenthesized_expression "(uVar60 <= uVar5)" ( (binary_expression "uVar60 <= uVar5" identifier <= identifier) )) (compound_statement "{\n          xSumwSum.x = (float)*pbVar24 / fVar35;\n          xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          xSumwSum.z = (float)*pbVar22 / fVar35;\n          end_1.x = (float)pbVar24[1] / fVar35;\n          end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          end_1.z = (float)pbVar22[1] / fVar35;\n          iVar6 = iVar33 * 2;\n          uVar5 = uVar60;\n        }" { (expression_statement "xSumwSum.x = (float)*pbVar24 / fVar35;" (assignment_expression "xSumwSum.x = (float)*pbVar24 / fVar35" (field_expression "xSumwSum.x" identifier . field_identifier) = (binary_expression "(float)*pbVar24 / fVar35" (cast_expression "(float)*pbVar24" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar24" * identifier)) / identifier)) ;) (expression_statement "xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "xSumwSum.y = (float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (field_expression "xSumwSum.y" identifier . field_identifier) = (binary_expression "(float)*pbVar31 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)*pbVar31" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar31" * identifier)) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) )))))) ;) (expression_statement "xSumwSum.z = (float)*pbVar22 / fVar35;" (assignment_expression "xSumwSum.z = (float)*pbVar22 / fVar35" (field_expression "xSumwSum.z" identifier . field_identifier) = (binary_expression "(float)*pbVar22 / fVar35" (cast_expression "(float)*pbVar22" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar22" * identifier)) / identifier)) ;) (expression_statement "end_1.x = (float)pbVar24[1] / fVar35;" (assignment_expression "end_1.x = (float)pbVar24[1] / fVar35" (field_expression "end_1.x" identifier . field_identifier) = (binary_expression "(float)pbVar24[1] / fVar35" (cast_expression "(float)pbVar24[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])) / identifier)) ;) (expression_statement "end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "end_1.y = (float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (field_expression "end_1.y" identifier . field_identifier) = (binary_expression "(float)pbVar31[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)pbVar31[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar31[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) )))))) ;) (expression_statement "end_1.z = (float)pbVar22[1] / fVar35;" (assignment_expression "end_1.z = (float)pbVar22[1] / fVar35" (field_expression "end_1.z" identifier . field_identifier) = (binary_expression "(float)pbVar22[1] / fVar35" (cast_expression "(float)pbVar22[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])) / identifier)) ;) (expression_statement "iVar6 = iVar33 * 2;" (assignment_expression "iVar6 = iVar33 * 2" identifier = (binary_expression "iVar33 * 2" identifier * number_literal)) ;) (expression_statement "uVar5 = uVar60;" (assignment_expression "uVar5 = uVar60" identifier = identifier) ;) })) (if_statement "if (iVar33 == 1) break;" if (parenthesized_expression "(iVar33 == 1)" ( (binary_expression "iVar33 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) })) (expression_statement "puVar13 = unordered;" (assignment_expression "puVar13 = unordered" identifier = identifier) ;) (do_statement "do {\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      } while (closest != puVar13);" do (compound_statement "{\n        *puVar13 = (uchar)iVar6;\n        puVar13 = puVar13 + 1;\n        puVar14 = closest;\n      }" { (expression_statement "*puVar13 = (uchar)iVar6;" (assignment_expression "*puVar13 = (uchar)iVar6" (pointer_expression "*puVar13" * identifier) = (cast_expression "(uchar)iVar6" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = closest;" (assignment_expression "puVar14 = closest" identifier = identifier) ;) }) while (parenthesized_expression "(closest != puVar13)" ( (binary_expression "closest != puVar13" identifier != identifier) )) ;) (do_statement "do {\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      } while (unaff_s1 != piVar26 + 1);" do (compound_statement "{\n        while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }\n        *puVar14 = unordered[*piVar26];\n        puVar14 = puVar14 + 1;\n        unaff_s2 = piVar26 + 1;\n      }" { (while_statement "while (piVar26 = unaff_s2, *piVar26 == -1) {\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }" while (parenthesized_expression "(piVar26 = unaff_s2, *piVar26 == -1)" ( (comma_expression "piVar26 = unaff_s2, *piVar26 == -1" (assignment_expression "piVar26 = unaff_s2" identifier = identifier) , (binary_expression "*piVar26 == -1" (pointer_expression "*piVar26" * identifier) == number_literal)) )) (compound_statement "{\n          *puVar14 = '\x03';\n          puVar14 = puVar14 + 1;\n          unaff_s2 = piVar26 + 1;\n          if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;\n        }" { (expression_statement "*puVar14 = '\x03';" (assignment_expression "*puVar14 = '\x03'" (pointer_expression "*puVar14" * identifier) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == piVar26 + 1) goto LAB_00216f04;" if (parenthesized_expression "(unaff_s1 == piVar26 + 1)" ( (binary_expression "unaff_s1 == piVar26 + 1" identifier == (binary_expression "piVar26 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00216f04;" goto statement_identifier ;)) })) (expression_statement "*puVar14 = unordered[*piVar26];" (assignment_expression "*puVar14 = unordered[*piVar26]" (pointer_expression "*puVar14" * identifier) = (subscript_expression "unordered[*piVar26]" identifier [ (pointer_expression "*piVar26" * identifier) ])) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != piVar26 + 1)" ( (binary_expression "unaff_s1 != piVar26 + 1" identifier != (binary_expression "piVar26 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_00216f04:\n      unaff_s2 = piVar26 + 1;" statement_identifier : (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;)) (expression_statement "start_01.x = end_1.x;" (assignment_expression "start_01.x = end_1.x" (field_expression "start_01.x" identifier . field_identifier) = (field_expression "end_1.x" identifier . field_identifier)) ;) (expression_statement "start_01.y = end_1.y;" (assignment_expression "start_01.y = end_1.y" (field_expression "start_01.y" identifier . field_identifier) = (field_expression "end_1.y" identifier . field_identifier)) ;) (expression_statement "start_01.z = end_1.z;" (assignment_expression "start_01.z = end_1.z" (field_expression "start_01.z" identifier . field_identifier) = (field_expression "end_1.z" identifier . field_identifier)) ;) (expression_statement "end_01.x = (float)closest;" (assignment_expression "end_01.x = (float)closest" (field_expression "end_01.x" identifier . field_identifier) = (cast_expression "(float)closest" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_01.y = (float)in_stack_fffffae0;" (assignment_expression "end_01.y = (float)in_stack_fffffae0" (field_expression "end_01.y" identifier . field_identifier) = (cast_expression "(float)in_stack_fffffae0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_01.z = in_stack_fffffae4;" (assignment_expression "end_01.z = in_stack_fffffae4" (field_expression "end_01.z" identifier . field_identifier) = identifier) ;) (expression_statement "WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x);" (call_expression "WriteIndices(image,start_01,end_01,(uchar *)xSumwSum.x)" identifier (argument_list "(image,start_01,end_01,(uchar *)xSumwSum.x)" ( identifier , identifier , identifier , (cast_expression "(uchar *)xSumwSum.x" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "xSumwSum.x" identifier . field_identifier)) ))) ;) (while_statement "while( true ) {\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_508._0_4_ = image->columns;\n        uVar5 = image->rows;\n        uVar30 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pDVar28 = unaff_s4;\n        unaff_s6 = compression;\n        unaff_s8 = image;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar54 = 0.0;\n        compression = unaff_s6;\n        image = unaff_s8;\n        fVar35 = fVar54;\n        fVar36 = fVar54;\n        fVar44 = fVar54;\n        fVar56 = fVar54;\n        fVar53 = fVar54;\nLAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        pDVar39 = pDVar41;\n        pDVar43 = pDVar41;\n        do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);\n        if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }\nLAB_00216af4:\n        start_00.x = end.x;\n        start_00.y = end.y;\n        start_00.z = end.z;\n        end_00.x = (float)indices;\n        end_00.y = (float)in_stack_fffffae0;\n        end_00.z = in_stack_fffffae4;\n        WriteIndices(image,start_00,end_00,(uchar *)start.x);\n      }" { (expression_statement "local_508._0_4_ = image->columns;" (assignment_expression "local_508._0_4_ = image->columns" (field_expression "local_508._0_4_" identifier . field_identifier) = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "uVar5 = image->rows;" (assignment_expression "uVar5 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "uVar30 = local_4cc;" (assignment_expression "uVar30 = local_4cc" identifier = identifier) ;) (if_statement "if ((int)local_4cc < (int)local_508._0_4_) break;" if (parenthesized_expression "((int)local_4cc < (int)local_508._0_4_)" ( (binary_expression "(int)local_4cc < (int)local_508._0_4_" (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00216b38:\n        local_4d0 = local_4c8;" statement_identifier : (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;)) (expression_statement "pDVar28 = unaff_s4;" (assignment_expression "pDVar28 = unaff_s4" identifier = identifier) ;) (expression_statement "unaff_s6 = compression;" (assignment_expression "unaff_s6 = compression" identifier = identifier) ;) (expression_statement "unaff_s8 = image;" (assignment_expression "unaff_s8 = image" identifier = identifier) ;) (if_statement "if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;" if (parenthesized_expression "((int)local_4c8 < (int)uVar5)" ( (binary_expression "(int)local_4c8 < (int)uVar5" (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216150;" goto statement_identifier ;)) (labeled_statement "LAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }" statement_identifier : (if_statement "if (local_5c == *(int *)puVar4) {\n          return;\n        }" if (parenthesized_expression "(local_5c == *(int *)puVar4)" ( (binary_expression "local_5c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021703c:\n        fVar54 = 0.0;" statement_identifier : (expression_statement "fVar54 = 0.0;" (assignment_expression "fVar54 = 0.0" identifier = number_literal) ;)) (expression_statement "compression = unaff_s6;" (assignment_expression "compression = unaff_s6" identifier = identifier) ;) (expression_statement "image = unaff_s8;" (assignment_expression "image = unaff_s8" identifier = identifier) ;) (expression_statement "fVar35 = fVar54;" (assignment_expression "fVar35 = fVar54" identifier = identifier) ;) (expression_statement "fVar36 = fVar54;" (assignment_expression "fVar36 = fVar54" identifier = identifier) ;) (expression_statement "fVar44 = fVar54;" (assignment_expression "fVar44 = fVar54" identifier = identifier) ;) (expression_statement "fVar56 = fVar54;" (assignment_expression "fVar56 = fVar54" identifier = identifier) ;) (expression_statement "fVar53 = fVar54;" (assignment_expression "fVar53 = fVar54" identifier = identifier) ;) (labeled_statement "LAB_0021663c:\n        puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" statement_identifier : (expression_statement "puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar11 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;)) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (expression_statement "dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar59 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "pDVar41 = *(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(DDSVector4 **)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "DDSVector4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar58 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "pDVar39 = pDVar41;" (assignment_expression "pDVar39 = pDVar41" identifier = identifier) ;) (expression_statement "pDVar43 = pDVar41;" (assignment_expression "pDVar43 = pDVar41" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        } while (iVar6 != 0);" do (compound_statement "{\n          while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar57 < fVar55) goto LAB_00216720;\nLAB_0021668c:\n          fVar37 = fVar57;\n          if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }\n          local_508 = (double)fVar37;\n          if (fVar37 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n          dVar45 = dVar59;\n          if (local_508 < dVar58) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar37 = (float)(dVar59 / local_508);\n          pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n          pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n          pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n        }" { (while_statement "while( true ) {\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;\n            fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;\n            fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;\n            if (fVar52 < fVar57) break;\n            if (fVar55 <= fVar52) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar55;\n            if (0.0 <= fVar55) goto LAB_002166ac;\nLAB_00216730:\n            local_4f0 = -local_508;\n            dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n            if (dVar58 <= local_4f0) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar37 = (float)(dVar45 / dVar58);\n            pDVar43 = (DDSVector4 *)(fVar55 * fVar37);\n            pDVar39 = (DDSVector4 *)(fVar57 * fVar37);\n            pDVar41 = (DDSVector4 *)(fVar52 * fVar37);\n            if (iVar6 == 0) goto LAB_00216774;\n          }" { (expression_statement "fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39;" (assignment_expression "fVar57 = fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39" identifier = (binary_expression "fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43 + fVar56 * (float)pDVar39" (binary_expression "fVar53 * (float)pDVar41 + fVar44 * (float)pDVar43" (binary_expression "fVar53 * (float)pDVar41" identifier * (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier)) + (binary_expression "fVar44 * (float)pDVar43" identifier * (cast_expression "(float)pDVar43" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar56 * (float)pDVar39" identifier * (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier)))) ;) (expression_statement "fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39;" (assignment_expression "fVar52 = fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39" identifier = (binary_expression "fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43 + fVar53 * (float)pDVar39" (binary_expression "fVar54 * (float)pDVar41 + fVar35 * (float)pDVar43" (binary_expression "fVar54 * (float)pDVar41" identifier * (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier)) + (binary_expression "fVar35 * (float)pDVar43" identifier * (cast_expression "(float)pDVar43" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar53 * (float)pDVar39" identifier * (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier)))) ;) (expression_statement "fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39;" (assignment_expression "fVar55 = fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39" identifier = (binary_expression "fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43 + fVar44 * (float)pDVar39" (binary_expression "fVar35 * (float)pDVar41 + fVar36 * (float)pDVar43" (binary_expression "fVar35 * (float)pDVar41" identifier * (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier)) + (binary_expression "fVar36 * (float)pDVar43" identifier * (cast_expression "(float)pDVar43" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar44 * (float)pDVar39" identifier * (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier)))) ;) (if_statement "if (fVar52 < fVar57) break;" if (parenthesized_expression "(fVar52 < fVar57)" ( (binary_expression "fVar52 < fVar57" identifier < identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar55 <= fVar52) goto LAB_0021668c;" if (parenthesized_expression "(fVar55 <= fVar52)" ( (binary_expression "fVar55 <= fVar52" identifier <= identifier) )) (goto_statement "goto LAB_0021668c;" goto statement_identifier ;)) (labeled_statement "LAB_00216720:\n            local_508 = (double)fVar55;" statement_identifier : (expression_statement "local_508 = (double)fVar55;" (assignment_expression "local_508 = (double)fVar55" identifier = (cast_expression "(double)fVar55" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (0.0 <= fVar55) goto LAB_002166ac;" if (parenthesized_expression "(0.0 <= fVar55)" ( (binary_expression "0.0 <= fVar55" number_literal <= identifier) )) (goto_statement "goto LAB_002166ac;" goto statement_identifier ;)) (labeled_statement "LAB_00216730:\n            local_4f0 = -local_508;" statement_identifier : (expression_statement "local_4f0 = -local_508;" (assignment_expression "local_4f0 = -local_508" identifier = (unary_expression "-local_508" - identifier)) ;)) (expression_statement "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a78" identifier + number_literal) ))))) ;) (if_statement "if (dVar58 <= local_4f0) goto LAB_002166c4;" if (parenthesized_expression "(dVar58 <= local_4f0)" ( (binary_expression "dVar58 <= local_4f0" identifier <= identifier) )) (goto_statement "goto LAB_002166c4;" goto statement_identifier ;)) (labeled_statement "LAB_00216758:\n            iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar37 = (float)(dVar45 / dVar58);" (assignment_expression "fVar37 = (float)(dVar45 / dVar58)" identifier = (cast_expression "(float)(dVar45 / dVar58)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar45 / dVar58)" ( (binary_expression "dVar45 / dVar58" identifier / identifier) )))) ;) (expression_statement "pDVar43 = (DDSVector4 *)(fVar55 * fVar37);" (assignment_expression "pDVar43 = (DDSVector4 *)(fVar55 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar55 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar55 * fVar37)" ( (binary_expression "fVar55 * fVar37" identifier * identifier) )))) ;) (expression_statement "pDVar39 = (DDSVector4 *)(fVar57 * fVar37);" (assignment_expression "pDVar39 = (DDSVector4 *)(fVar57 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar57 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar57 * fVar37)" ( (binary_expression "fVar57 * fVar37" identifier * identifier) )))) ;) (expression_statement "pDVar41 = (DDSVector4 *)(fVar52 * fVar37);" (assignment_expression "pDVar41 = (DDSVector4 *)(fVar52 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar52 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar52 * fVar37)" ( (binary_expression "fVar52 * fVar37" identifier * identifier) )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00216774;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00216774;" goto statement_identifier ;)) })) (if_statement "if (fVar57 < fVar55) goto LAB_00216720;" if (parenthesized_expression "(fVar57 < fVar55)" ( (binary_expression "fVar57 < fVar55" identifier < identifier) )) (goto_statement "goto LAB_00216720;" goto statement_identifier ;)) (labeled_statement "LAB_0021668c:\n          fVar37 = fVar57;" statement_identifier : (expression_statement "fVar37 = fVar57;" (assignment_expression "fVar37 = fVar57" identifier = identifier) ;)) (if_statement "if (fVar57 <= fVar52) {\n            fVar37 = fVar52;\n          }" if (parenthesized_expression "(fVar57 <= fVar52)" ( (binary_expression "fVar57 <= fVar52" identifier <= identifier) )) (compound_statement "{\n            fVar37 = fVar52;\n          }" { (expression_statement "fVar37 = fVar52;" (assignment_expression "fVar37 = fVar52" identifier = identifier) ;) })) (expression_statement "local_508 = (double)fVar37;" (assignment_expression "local_508 = (double)fVar37" identifier = (cast_expression "(double)fVar37" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (fVar37 < 0.0) goto LAB_00216730;" if (parenthesized_expression "(fVar37 < 0.0)" ( (binary_expression "fVar37 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00216730;" goto statement_identifier ;)) (labeled_statement "LAB_002166ac:\n          dVar45 = dVar59;" statement_identifier : (expression_statement "dVar45 = dVar59;" (assignment_expression "dVar45 = dVar59" identifier = identifier) ;)) (if_statement "if (local_508 < dVar58) goto LAB_00216758;" if (parenthesized_expression "(local_508 < dVar58)" ( (binary_expression "local_508 < dVar58" identifier < identifier) )) (goto_statement "goto LAB_00216758;" goto statement_identifier ;)) (labeled_statement "LAB_002166c4:\n          iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar37 = (float)(dVar59 / local_508);" (assignment_expression "fVar37 = (float)(dVar59 / local_508)" identifier = (cast_expression "(float)(dVar59 / local_508)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar59 / local_508)" ( (binary_expression "dVar59 / local_508" identifier / identifier) )))) ;) (expression_statement "pDVar43 = (DDSVector4 *)(fVar55 * fVar37);" (assignment_expression "pDVar43 = (DDSVector4 *)(fVar55 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar55 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar55 * fVar37)" ( (binary_expression "fVar55 * fVar37" identifier * identifier) )))) ;) (expression_statement "pDVar39 = (DDSVector4 *)(fVar57 * fVar37);" (assignment_expression "pDVar39 = (DDSVector4 *)(fVar57 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar57 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar57 * fVar37)" ( (binary_expression "fVar57 * fVar37" identifier * identifier) )))) ;) (expression_statement "pDVar41 = (DDSVector4 *)(fVar52 * fVar37);" (assignment_expression "pDVar41 = (DDSVector4 *)(fVar52 * fVar37)" identifier = (cast_expression "(DDSVector4 *)(fVar52 * fVar37)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar52 * fVar37)" ( (binary_expression "fVar52 * fVar37" identifier * identifier) )))) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00216774:\n        uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);" statement_identifier : (expression_statement "uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)dVar59 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar59 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar59 >> 0x20)" ( (binary_expression "(ulonglong)dVar59 >> 0x20" (cast_expression "(ulonglong)dVar59" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (if_statement "if (clusterFit == MagickFalse) {\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }" if (parenthesized_expression "(clusterFit == MagickFalse)" ( (binary_expression "clusterFit == MagickFalse" identifier == identifier) )) (compound_statement "{\n          if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;\n          start.y = points[0].y;\n          start.x = points[0].x;\n          start.z = points[0].z;\n          end.x = points[0].x;\n          end.y = points[0].y;\n          end.z = points[0].z;\n          fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;\n          if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar55 = start.z;\n          if (0.0 <= start.z) goto LAB_002167c4;\nLAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if (0.0 < (float)uVar49) goto LAB_002167f4;\nLAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();\n          uVar49 = CONCAT44(uVar47,fVar35);\njoined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }\n          uVar49 = CONCAT44(uVar47,fVar55);\n          if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }\n          fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);\n          fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);\n          end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);\n          codes[0].x = start.x;\n          codes[0].y = start.y;\n          codes[0].z = start.z;\n          codes[1].x = end.x;\n          codes[1].y = end.y;\n          codes[1].z = end.z;\n          codes[2].x = fVar57 * fVar56 + end.x * fVar44;\n          codes[2].y = fVar52 * fVar56 + end.y * fVar44;\n          codes[3].x = fVar57 * fVar44 + end.x * fVar56;\n          codes[2].z = fVar36 * fVar56 + end.z * fVar44;\n          codes[3].y = fVar52 * fVar44 + end.y * fVar56;\n          codes[3].z = fVar36 * fVar44 + end.z * fVar56;\n          if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }\n          puVar13 = indices;\n          do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }" { (if_statement "if (unaff_s0 == (uchar *)0x0) goto LAB_00216788;" if (parenthesized_expression "(unaff_s0 == (uchar *)0x0)" ( (binary_expression "unaff_s0 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00216788;" goto statement_identifier ;)) (expression_statement "start.y = points[0].y;" (assignment_expression "start.y = points[0].y" (field_expression "start.y" identifier . field_identifier) = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "start.x = points[0].x;" (assignment_expression "start.x = points[0].x" (field_expression "start.x" identifier . field_identifier) = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "start.z = points[0].z;" (assignment_expression "start.z = points[0].z" (field_expression "start.z" identifier . field_identifier) = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "end.x = points[0].x;" (assignment_expression "end.x = points[0].x" (field_expression "end.x" identifier . field_identifier) = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "end.y = points[0].y;" (assignment_expression "end.y = points[0].y" (field_expression "end.y" identifier . field_identifier) = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "end.z = points[0].z;" (assignment_expression "end.z = points[0].z" (field_expression "end.z" identifier . field_identifier) = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y;" (assignment_expression "fVar35 = (float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y" identifier = (binary_expression "(float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x + (float)pDVar39 * points[0].y" (binary_expression "(float)pDVar41 * points[0].z +\n                   (float)pDVar43 * points[0].x" (binary_expression "(float)pDVar41 * points[0].z" (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) + (binary_expression "(float)pDVar43 * points[0].x" (cast_expression "(float)pDVar43" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier))) + (binary_expression "(float)pDVar39 * points[0].y" (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)))) ;) (if_statement "if ((int)unaff_s3 < 2) {\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" if (parenthesized_expression "((int)unaff_s3 < 2)" ( (binary_expression "(int)unaff_s3 < 2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (points[0].x < 0.0) goto LAB_002171e0;\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\nLAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" { (if_statement "if (points[0].x < 0.0) goto LAB_002171e0;" if (parenthesized_expression "(points[0].x < 0.0)" ( (binary_expression "points[0].x < 0.0" (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) < number_literal) )) (goto_statement "goto LAB_002171e0;" goto statement_identifier ;)) (expression_statement "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002179a0:\n            if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" statement_identifier : (if_statement "if (start.x <= fVar35) {\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" if (parenthesized_expression "(start.x <= fVar35)" ( (binary_expression "start.x <= fVar35" (field_expression "start.x" identifier . field_identifier) <= identifier) )) (compound_statement "{\n              fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" { (expression_statement "fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "start.x * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (field_expression "start.x" identifier . field_identifier) * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (goto_statement "goto LAB_002171e8;" goto statement_identifier ;) }))) (expression_statement "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (if_statement "if (0.0 <= start.y) {\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" if (parenthesized_expression "(0.0 <= start.y)" ( (binary_expression "0.0 <= start.y" number_literal <= (field_expression "start.y" identifier . field_identifier)) )) (compound_statement "{\n              fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" { (expression_statement "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002179c0;" goto statement_identifier ;) })) }) (else_clause "else {\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" else (compound_statement "{\n            pDVar10 = points + 1;\n            bVar2 = false;\n            bVar18 = false;\n            bVar20 = false;\n            bVar16 = false;\n            fVar55 = points[0].x;\n            fVar57 = fVar35;\n            fVar52 = points[0].z;\n            fVar36 = points[0].y;\n            fVar44 = points[0].z;\n            fVar56 = points[0].x;\n            fVar53 = points[0].y;\n            do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);\nLAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }\n            if (bVar20) {\n              end.x = fVar55;\n            }\n            if (bVar18) {\n              end.y = fVar36;\n            }\n            if (bVar2) {\n              end.z = fVar52;\n            }\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.x) goto LAB_002179a0;\nLAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);\n            fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" { (expression_statement "pDVar10 = points + 1;" (assignment_expression "pDVar10 = points + 1" identifier = (binary_expression "points + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "fVar55 = points[0].x;" (assignment_expression "fVar55 = points[0].x" identifier = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar57 = fVar35;" (assignment_expression "fVar57 = fVar35" identifier = identifier) ;) (expression_statement "fVar52 = points[0].z;" (assignment_expression "fVar52 = points[0].z" identifier = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar36 = points[0].y;" (assignment_expression "fVar36 = points[0].y" identifier = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar44 = points[0].z;" (assignment_expression "fVar44 = points[0].z" identifier = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar56 = points[0].x;" (assignment_expression "fVar56 = points[0].x" identifier = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar53 = points[0].y;" (assignment_expression "fVar53 = points[0].y" identifier = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (do_statement "do {\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            } while (pDVar28 + (int)unaff_s3 != pDVar10);" do (compound_statement "{\n              while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }\n              pDVar10 = pDVar10 + 1;\n              bVar16 = true;\n              fVar57 = fVar40;\n              fVar44 = fVar54;\n              fVar56 = fVar37;\n              fVar53 = fVar38;\n            }" { (while_statement "while( true ) {\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                fVar38 = pDVar10->y;\n                fVar37 = pDVar10->x;\n                fVar54 = pDVar10->z;\n                fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;\n                if (fVar40 < fVar57) break;\n                if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }\n                pDVar10 = pDVar10 + 1;\n                fVar54 = fVar44;\n                fVar37 = fVar56;\n                fVar38 = fVar53;\n                if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;\n              }" { (expression_statement "fVar38 = pDVar10->y;" (assignment_expression "fVar38 = pDVar10->y" identifier = (field_expression "pDVar10->y" identifier -> field_identifier)) ;) (expression_statement "fVar37 = pDVar10->x;" (assignment_expression "fVar37 = pDVar10->x" identifier = (field_expression "pDVar10->x" identifier -> field_identifier)) ;) (expression_statement "fVar54 = pDVar10->z;" (assignment_expression "fVar54 = pDVar10->z" identifier = (field_expression "pDVar10->z" identifier -> field_identifier)) ;) (expression_statement "fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38\n                ;" (assignment_expression "fVar40 = (float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38" identifier = (binary_expression "(float)pDVar41 * fVar54 + (float)pDVar43 * fVar37 + (float)pDVar39 * fVar38" (binary_expression "(float)pDVar41 * fVar54 + (float)pDVar43 * fVar37" (binary_expression "(float)pDVar41 * fVar54" (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) + (binary_expression "(float)pDVar43 * fVar37" (cast_expression "(float)pDVar43" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) + (binary_expression "(float)pDVar39 * fVar38" (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier) * identifier))) ;) (if_statement "if (fVar40 < fVar57) break;" if (parenthesized_expression "(fVar40 < fVar57)" ( (binary_expression "fVar40 < fVar57" identifier < identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar35 < fVar40) {\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }" if (parenthesized_expression "(fVar35 < fVar40)" ( (binary_expression "fVar35 < fVar40" identifier < identifier) )) (compound_statement "{\n                  bVar2 = true;\n                  bVar18 = true;\n                  bVar20 = true;\n                  fVar55 = fVar37;\n                  fVar52 = fVar54;\n                  fVar36 = fVar38;\n                  fVar35 = fVar40;\n                }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (expression_statement "bVar20 = true;" (assignment_expression "bVar20 = true" identifier = true) ;) (expression_statement "fVar55 = fVar37;" (assignment_expression "fVar55 = fVar37" identifier = identifier) ;) (expression_statement "fVar52 = fVar54;" (assignment_expression "fVar52 = fVar54" identifier = identifier) ;) (expression_statement "fVar36 = fVar38;" (assignment_expression "fVar36 = fVar38" identifier = identifier) ;) (expression_statement "fVar35 = fVar40;" (assignment_expression "fVar35 = fVar40" identifier = identifier) ;) })) (expression_statement "pDVar10 = pDVar10 + 1;" (assignment_expression "pDVar10 = pDVar10 + 1" identifier = (binary_expression "pDVar10 + 1" identifier + number_literal)) ;) (expression_statement "fVar54 = fVar44;" (assignment_expression "fVar54 = fVar44" identifier = identifier) ;) (expression_statement "fVar37 = fVar56;" (assignment_expression "fVar37 = fVar56" identifier = identifier) ;) (expression_statement "fVar38 = fVar53;" (assignment_expression "fVar38 = fVar53" identifier = identifier) ;) (if_statement "if (pDVar28 + (int)unaff_s3 == pDVar10) goto LAB_00217194;" if (parenthesized_expression "(pDVar28 + (int)unaff_s3 == pDVar10)" ( (binary_expression "pDVar28 + (int)unaff_s3 == pDVar10" (binary_expression "pDVar28 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_00217194;" goto statement_identifier ;)) })) (expression_statement "pDVar10 = pDVar10 + 1;" (assignment_expression "pDVar10 = pDVar10 + 1" identifier = (binary_expression "pDVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "fVar57 = fVar40;" (assignment_expression "fVar57 = fVar40" identifier = identifier) ;) (expression_statement "fVar44 = fVar54;" (assignment_expression "fVar44 = fVar54" identifier = identifier) ;) (expression_statement "fVar56 = fVar37;" (assignment_expression "fVar56 = fVar37" identifier = identifier) ;) (expression_statement "fVar53 = fVar38;" (assignment_expression "fVar53 = fVar38" identifier = identifier) ;) }) while (parenthesized_expression "(pDVar28 + (int)unaff_s3 != pDVar10)" ( (binary_expression "pDVar28 + (int)unaff_s3 != pDVar10" (binary_expression "pDVar28 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) (labeled_statement "LAB_00217194:\n            if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }" statement_identifier : (if_statement "if (bVar16) {\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n              start.x = fVar37;\n              start.y = fVar38;\n              start.z = fVar54;\n            }" { (expression_statement "start.x = fVar37;" (assignment_expression "start.x = fVar37" (field_expression "start.x" identifier . field_identifier) = identifier) ;) (expression_statement "start.y = fVar38;" (assignment_expression "start.y = fVar38" (field_expression "start.y" identifier . field_identifier) = identifier) ;) (expression_statement "start.z = fVar54;" (assignment_expression "start.z = fVar54" (field_expression "start.z" identifier . field_identifier) = identifier) ;) }))) (if_statement "if (bVar20) {\n              end.x = fVar55;\n            }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n              end.x = fVar55;\n            }" { (expression_statement "end.x = fVar55;" (assignment_expression "end.x = fVar55" (field_expression "end.x" identifier . field_identifier) = identifier) ;) })) (if_statement "if (bVar18) {\n              end.y = fVar36;\n            }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n              end.y = fVar36;\n            }" { (expression_statement "end.y = fVar36;" (assignment_expression "end.y = fVar36" (field_expression "end.y" identifier . field_identifier) = identifier) ;) })) (if_statement "if (bVar2) {\n              end.z = fVar52;\n            }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n              end.z = fVar52;\n            }" { (expression_statement "end.z = fVar52;" (assignment_expression "end.z = fVar52" (field_expression "end.z" identifier . field_identifier) = identifier) ;) })) (expression_statement "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= start.x) goto LAB_002179a0;" if (parenthesized_expression "(0.0 <= start.x)" ( (binary_expression "0.0 <= start.x" number_literal <= (field_expression "start.x" identifier . field_identifier)) )) (goto_statement "goto LAB_002179a0;" goto statement_identifier ;)) (labeled_statement "LAB_002171e0:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002171e8:\n            uVar49 = CONCAT44(uVar47,fVar35);" statement_identifier : (expression_statement "uVar49 = CONCAT44(uVar47,fVar35);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar35)" identifier = (call_expression "CONCAT44(uVar47,fVar35)" identifier (argument_list "(uVar47,fVar35)" ( identifier , identifier )))) ;)) (expression_statement "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= start.y) {\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" if (parenthesized_expression "(0.0 <= start.y)" ( (binary_expression "0.0 <= start.y" number_literal <= (field_expression "start.y" identifier . field_identifier)) )) (compound_statement "{\nLAB_002179c0:\n              fVar55 = start.z;\n              fVar57 = start.y;\n              if (start.y <= fVar35) goto LAB_002167a4;\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" { (labeled_statement "LAB_002179c0:\n              fVar55 = start.z;" statement_identifier : (expression_statement "fVar55 = start.z;" (assignment_expression "fVar55 = start.z" identifier = (field_expression "start.z" identifier . field_identifier)) ;)) (expression_statement "fVar57 = start.y;" (assignment_expression "fVar57 = start.y" identifier = (field_expression "start.y" identifier . field_identifier)) ;) (if_statement "if (start.y <= fVar35) goto LAB_002167a4;" if (parenthesized_expression "(start.y <= fVar35)" ( (binary_expression "start.y <= fVar35" (field_expression "start.y" identifier . field_identifier) <= identifier) )) (goto_statement "goto LAB_002167a4;" goto statement_identifier ;)) (expression_statement "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002167b4;" goto statement_identifier ;) })) }))) (expression_statement "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar55 = start.z;" (assignment_expression "fVar55 = start.z" identifier = (field_expression "start.z" identifier . field_identifier)) ;) (if_statement "if (0.0 <= start.z) goto LAB_002167c4;" if (parenthesized_expression "(0.0 <= start.z)" ( (binary_expression "0.0 <= start.z" number_literal <= (field_expression "start.z" identifier . field_identifier)) )) (goto_statement "goto LAB_002167c4;" goto statement_identifier ;)) (labeled_statement "LAB_0021720c:\n          fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if (0.0 < (float)uVar49) goto LAB_002167f4;" if (parenthesized_expression "(0.0 < (float)uVar49)" ( (binary_expression "0.0 < (float)uVar49" number_literal < (cast_expression "(float)uVar49" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_002167f4;" goto statement_identifier ;)) (labeled_statement "LAB_00217224:\n          uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" statement_identifier : (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar57 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar57 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar49 = CONCAT44(uVar47,fVar35);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar35)" identifier = (call_expression "CONCAT44(uVar47,fVar35)" identifier (argument_list "(uVar47,fVar35)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00216814:\n          if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }" statement_identifier : (if_statement "if (fVar35 <= 0.0) {\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }" if (parenthesized_expression "(fVar35 <= 0.0)" ( (binary_expression "fVar35 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar35 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar35 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }" else (compound_statement "{\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n          }" { (expression_statement "fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);" (assignment_expression "fVar35 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar49)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar49)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar49)" ( identifier ))))) ;) (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) })))) (expression_statement "uVar49 = CONCAT44(uVar47,fVar55);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar55)" identifier = (call_expression "CONCAT44(uVar47,fVar55)" identifier (argument_list "(uVar47,fVar55)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar55) {\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }" if (parenthesized_expression "(0.0 < fVar55)" ( (binary_expression "0.0 < fVar55" number_literal < identifier) )) (compound_statement "{\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (end.x < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\n            if (0.0 <= end.y) goto LAB_002168bc;\nLAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if (0.0 < (float)uVar49) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (0.0 < fVar35) goto LAB_00216938;\nLAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);\n            if (0.0 < fVar55) goto LAB_00216960;\nLAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49);" (assignment_expression "fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(uVar49)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar49)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar49)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar49)" ( identifier ))))) ;) (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (field_expression "start.x" identifier . field_identifier) = (binary_expression "fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (field_expression "start.z" identifier . field_identifier) = (binary_expression "fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (field_expression "start.y" identifier . field_identifier) = (binary_expression "fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (end.x < 0.0) goto LAB_002170a0;" if (parenthesized_expression "(end.x < 0.0)" ( (binary_expression "end.x < 0.0" (field_expression "end.x" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_002170a0;" goto statement_identifier ;)) (labeled_statement "LAB_00216890:\n            if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" statement_identifier : (if_statement "if (*(float *)(puVar11 + -0x5a8c) < end.x) {\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" if (parenthesized_expression "(*(float *)(puVar11 + -0x5a8c) < end.x)" ( (binary_expression "*(float *)(puVar11 + -0x5a8c) < end.x" (pointer_expression "*(float *)(puVar11 + -0x5a8c)" * (cast_expression "(float *)(puVar11 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x5a8c)" ( (binary_expression "puVar11 + -0x5a8c" identifier + number_literal) )))) < (field_expression "end.x" identifier . field_identifier)) )) (compound_statement "{\n              uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" { (expression_statement "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar47,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_002168a8;" goto statement_identifier ;) }))) (expression_statement "uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar49 = CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar47,end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (binary_expression "end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "end.x * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (field_expression "end.x" identifier . field_identifier) * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) )))) ;) (expression_statement "fVar35 = *(float *)(puVar11 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(puVar11 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar11 + -0x5a8c)" * (cast_expression "(float *)(puVar11 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x5a8c)" ( (binary_expression "puVar11 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= end.y) goto LAB_002168bc;" if (parenthesized_expression "(0.0 <= end.y)" ( (binary_expression "0.0 <= end.y" number_literal <= (field_expression "end.y" identifier . field_identifier)) )) (goto_statement "goto LAB_002168bc;" goto statement_identifier ;)) (labeled_statement "LAB_00217004:\n            fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002168d0:\n            if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }" statement_identifier : (if_statement "if (0.0 <= end.z) {\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }" if (parenthesized_expression "(0.0 <= end.z)" ( (binary_expression "0.0 <= end.z" number_literal <= (field_expression "end.z" identifier . field_identifier)) )) (compound_statement "{\n              fVar55 = *(float *)(puVar11 + -0x5a8c);\n              goto LAB_002168e4;\n            }" { (expression_statement "fVar55 = *(float *)(puVar11 + -0x5a8c);" (assignment_expression "fVar55 = *(float *)(puVar11 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar11 + -0x5a8c)" * (cast_expression "(float *)(puVar11 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x5a8c)" ( (binary_expression "puVar11 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168e4;" goto statement_identifier ;) }))) (labeled_statement "LAB_00216f6c:\n            fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar55 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if (0.0 < (float)uVar49) goto LAB_00216910;" if (parenthesized_expression "(0.0 < (float)uVar49)" ( (binary_expression "0.0 < (float)uVar49" number_literal < (cast_expression "(float)uVar49" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216910;" goto statement_identifier ;)) (labeled_statement "LAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar57 = start.x;" (assignment_expression "fVar57 = start.x" identifier = (field_expression "start.x" identifier . field_identifier)) ;) (expression_statement "fVar52 = start.y;" (assignment_expression "fVar52 = start.y" identifier = (field_expression "start.y" identifier . field_identifier)) ;) (expression_statement "fVar36 = start.z;" (assignment_expression "fVar36 = start.z" identifier = (field_expression "start.z" identifier . field_identifier)) ;) (expression_statement "fVar44 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar44 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar49 = CONCAT44(uVar47,fVar35);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar35)" identifier = (call_expression "CONCAT44(uVar47,fVar35)" identifier (argument_list "(uVar47,fVar35)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar35) goto LAB_00216938;" if (parenthesized_expression "(0.0 < fVar35)" ( (binary_expression "0.0 < fVar35" number_literal < identifier) )) (goto_statement "goto LAB_00216938;" goto statement_identifier ;)) (labeled_statement "LAB_00216fa0:\n            fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);" statement_identifier : (expression_statement "fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49);" (assignment_expression "fVar35 = (float)(*(code *)PTR_ceilf_003a9484)(uVar49)" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)(uVar49)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)(uVar49)" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar49)" ( identifier ))))) ;)) (if_statement "if (0.0 < fVar55) goto LAB_00216960;" if (parenthesized_expression "(0.0 < fVar55)" ( (binary_expression "0.0 < fVar55" number_literal < identifier) )) (goto_statement "goto LAB_00216960;" goto statement_identifier ;)) (labeled_statement "LAB_00216fc8:\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();" statement_identifier : (expression_statement "fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar55 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) }) (else_clause "else {\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }" else (compound_statement "{\n            fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= end.x) goto LAB_00216890;\nLAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;\n            fVar35 = *(float *)(puVar11 + -0x5a8c);\nLAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar55 = *(float *)(puVar11 + -0x5a8c);\n            if (end.z < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = start.x;\n            fVar52 = start.y;\n            fVar36 = start.z;\n            fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            if (fVar35 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (fVar55 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);\n          }" { (expression_statement "fVar55 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar55 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "start.x = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (field_expression "start.x" identifier . field_identifier) = (binary_expression "fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "start.z = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (field_expression "start.z" identifier . field_identifier) = (binary_expression "fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "start.y = fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (field_expression "start.y" identifier . field_identifier) = (binary_expression "fVar35 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= end.x) goto LAB_00216890;" if (parenthesized_expression "(0.0 <= end.x)" ( (binary_expression "0.0 <= end.x" number_literal <= (field_expression "end.x" identifier . field_identifier)) )) (goto_statement "goto LAB_00216890;" goto statement_identifier ;)) (labeled_statement "LAB_002170a0:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (labeled_statement "LAB_002168a8:\n            if (end.y < 0.0) goto LAB_00217004;" statement_identifier : (if_statement "if (end.y < 0.0) goto LAB_00217004;" if (parenthesized_expression "(end.y < 0.0)" ( (binary_expression "end.y < 0.0" (field_expression "end.y" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_00217004;" goto statement_identifier ;))) (expression_statement "fVar35 = *(float *)(puVar11 + -0x5a8c);" (assignment_expression "fVar35 = *(float *)(puVar11 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar11 + -0x5a8c)" * (cast_expression "(float *)(puVar11 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x5a8c)" ( (binary_expression "puVar11 + -0x5a8c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002168bc:\n            if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" statement_identifier : (if_statement "if (fVar35 < end.y) {\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" if (parenthesized_expression "(fVar35 < end.y)" ( (binary_expression "fVar35 < end.y" identifier < (field_expression "end.y" identifier . field_identifier)) )) (compound_statement "{\n              fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" { (expression_statement "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168d0;" goto statement_identifier ;) }))) (expression_statement "fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "end.y * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (field_expression "end.y" identifier . field_identifier) * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (expression_statement "fVar55 = *(float *)(puVar11 + -0x5a8c);" (assignment_expression "fVar55 = *(float *)(puVar11 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar11 + -0x5a8c)" * (cast_expression "(float *)(puVar11 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x5a8c)" ( (binary_expression "puVar11 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (end.z < 0.0) goto LAB_00216f6c;" if (parenthesized_expression "(end.z < 0.0)" ( (binary_expression "end.z < 0.0" (field_expression "end.z" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_00216f6c;" goto statement_identifier ;)) (labeled_statement "LAB_002168e4:\n            if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (end.z <= fVar55) {\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(end.z <= fVar55)" ( (binary_expression "end.z <= fVar55" (field_expression "end.z" identifier . field_identifier) <= identifier) )) (compound_statement "{\n              fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar55 = end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "end.z * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (field_expression "end.z" identifier . field_identifier) * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if ((float)uVar49 <= 0.0) goto LAB_00216f7c;" if (parenthesized_expression "((float)uVar49 <= 0.0)" ( (binary_expression "(float)uVar49 <= 0.0" (cast_expression "(float)uVar49" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00216f7c;" goto statement_identifier ;)) (labeled_statement "LAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar57 = start.x;" (assignment_expression "fVar57 = start.x" identifier = (field_expression "start.x" identifier . field_identifier)) ;) (expression_statement "fVar52 = start.y;" (assignment_expression "fVar52 = start.y" identifier = (field_expression "start.y" identifier . field_identifier)) ;) (expression_statement "fVar36 = start.z;" (assignment_expression "fVar36 = start.z" identifier = (field_expression "start.z" identifier . field_identifier)) ;) (expression_statement "fVar44 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar44 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar49 = CONCAT44(uVar47,fVar35);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar35)" identifier = (call_expression "CONCAT44(uVar47,fVar35)" identifier (argument_list "(uVar47,fVar35)" ( identifier , identifier )))) ;) (if_statement "if (fVar35 <= 0.0) goto LAB_00216fa0;" if (parenthesized_expression "(fVar35 <= 0.0)" ( (binary_expression "fVar35 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00216938:\n            fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();" statement_identifier : (expression_statement "fVar35 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar35 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (if_statement "if (fVar55 <= 0.0) goto LAB_00216fc8;" if (parenthesized_expression "(fVar55 <= 0.0)" ( (binary_expression "fVar55 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fc8;" goto statement_identifier ;)) (labeled_statement "LAB_00216960:\n            fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);" statement_identifier : (expression_statement "fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55);" (assignment_expression "fVar55 = (float)(*(code *)PTR_floorf_003a94a0)(fVar55)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(fVar55)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(fVar55)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fVar55)" ( identifier ))))) ;)) }))) (expression_statement "fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "fVar56 = *(float *)(PTR_UINT_003a8950 + -0x1e4c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e4c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e4c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e4c" identifier + number_literal) ))))) ;) (expression_statement "end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "end.x = fVar44 * *(float *)(unaff_s0 + -0x1e54)" (field_expression "end.x" identifier . field_identifier) = (binary_expression "fVar44 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "fVar44 = *(float *)(PTR_UINT_003a8950 + -0x1e48)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e48)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e48)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e48" identifier + number_literal) ))))) ;) (expression_statement "end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50);" (assignment_expression "end.y = fVar35 * *(float *)(unaff_s0 + -0x1e50)" (field_expression "end.y" identifier . field_identifier) = (binary_expression "fVar35 * *(float *)(unaff_s0 + -0x1e50)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e50)" * (cast_expression "(float *)(unaff_s0 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e50)" ( (binary_expression "unaff_s0 + -0x1e50" identifier + number_literal) )))))) ;) (expression_statement "end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "end.z = fVar55 * *(float *)(unaff_s0 + -0x1e54)" (field_expression "end.z" identifier . field_identifier) = (binary_expression "fVar55 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "codes[0].x = start.x;" (assignment_expression "codes[0].x = start.x" (field_expression "codes[0].x" (subscript_expression "codes[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.x" identifier . field_identifier)) ;) (expression_statement "codes[0].y = start.y;" (assignment_expression "codes[0].y = start.y" (field_expression "codes[0].y" (subscript_expression "codes[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.y" identifier . field_identifier)) ;) (expression_statement "codes[0].z = start.z;" (assignment_expression "codes[0].z = start.z" (field_expression "codes[0].z" (subscript_expression "codes[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.z" identifier . field_identifier)) ;) (expression_statement "codes[1].x = end.x;" (assignment_expression "codes[1].x = end.x" (field_expression "codes[1].x" (subscript_expression "codes[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.x" identifier . field_identifier)) ;) (expression_statement "codes[1].y = end.y;" (assignment_expression "codes[1].y = end.y" (field_expression "codes[1].y" (subscript_expression "codes[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.y" identifier . field_identifier)) ;) (expression_statement "codes[1].z = end.z;" (assignment_expression "codes[1].z = end.z" (field_expression "codes[1].z" (subscript_expression "codes[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.z" identifier . field_identifier)) ;) (expression_statement "codes[2].x = fVar57 * fVar56 + end.x * fVar44;" (assignment_expression "codes[2].x = fVar57 * fVar56 + end.x * fVar44" (field_expression "codes[2].x" (subscript_expression "codes[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar57 * fVar56 + end.x * fVar44" (binary_expression "fVar57 * fVar56" identifier * identifier) + (binary_expression "end.x * fVar44" (field_expression "end.x" identifier . field_identifier) * identifier))) ;) (expression_statement "codes[2].y = fVar52 * fVar56 + end.y * fVar44;" (assignment_expression "codes[2].y = fVar52 * fVar56 + end.y * fVar44" (field_expression "codes[2].y" (subscript_expression "codes[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar52 * fVar56 + end.y * fVar44" (binary_expression "fVar52 * fVar56" identifier * identifier) + (binary_expression "end.y * fVar44" (field_expression "end.y" identifier . field_identifier) * identifier))) ;) (expression_statement "codes[3].x = fVar57 * fVar44 + end.x * fVar56;" (assignment_expression "codes[3].x = fVar57 * fVar44 + end.x * fVar56" (field_expression "codes[3].x" (subscript_expression "codes[3]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar57 * fVar44 + end.x * fVar56" (binary_expression "fVar57 * fVar44" identifier * identifier) + (binary_expression "end.x * fVar56" (field_expression "end.x" identifier . field_identifier) * identifier))) ;) (expression_statement "codes[2].z = fVar36 * fVar56 + end.z * fVar44;" (assignment_expression "codes[2].z = fVar36 * fVar56 + end.z * fVar44" (field_expression "codes[2].z" (subscript_expression "codes[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar36 * fVar56 + end.z * fVar44" (binary_expression "fVar36 * fVar56" identifier * identifier) + (binary_expression "end.z * fVar44" (field_expression "end.z" identifier . field_identifier) * identifier))) ;) (expression_statement "codes[3].y = fVar52 * fVar44 + end.y * fVar56;" (assignment_expression "codes[3].y = fVar52 * fVar44 + end.y * fVar56" (field_expression "codes[3].y" (subscript_expression "codes[3]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar52 * fVar44 + end.y * fVar56" (binary_expression "fVar52 * fVar44" identifier * identifier) + (binary_expression "end.y * fVar56" (field_expression "end.y" identifier . field_identifier) * identifier))) ;) (expression_statement "codes[3].z = fVar36 * fVar44 + end.z * fVar56;" (assignment_expression "codes[3].z = fVar36 * fVar44 + end.z * fVar56" (field_expression "codes[3].z" (subscript_expression "codes[3]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar36 * fVar44 + end.z * fVar56" (binary_expression "fVar36 * fVar44" identifier * identifier) + (binary_expression "end.z * fVar56" (field_expression "end.z" identifier . field_identifier) * identifier))) ;) (if_statement "if (0 < (int)unaff_s3) {\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }" if (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar13 = closest;\n            unaff_s3 = unaff_s3 + (int)puVar13;\n            fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);\n          }" { (expression_statement "puVar13 = closest;" (assignment_expression "puVar13 = closest" identifier = identifier) ;) (expression_statement "unaff_s3 = unaff_s3 + (int)puVar13;" (assignment_expression "unaff_s3 = unaff_s3 + (int)puVar13" identifier = (binary_expression "unaff_s3 + (int)puVar13" identifier + (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "fVar35 = *(float *)(PTR_UINT_003a8950 + -0x1e60)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e60)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e60)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e60" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            } while (unaff_s3 != puVar13);" do (compound_statement "{\n              iVar33 = 0;\n              pDVar9 = codes;\n              iVar6 = 0;\n              fVar55 = fVar35;\n              do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);\n              *puVar13 = (uchar)iVar19;\n              puVar13 = puVar13 + 1;\n              pDVar28 = pDVar28 + 1;\n            }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "pDVar9 = codes;" (assignment_expression "pDVar9 = codes" identifier = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "fVar55 = fVar35;" (assignment_expression "fVar55 = fVar35" identifier = identifier) ;) (do_statement "do {\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              } while (iVar33 != 4);" do (compound_statement "{\n                fVar36 = pDVar28->y - pDVar9->y;\n                fVar52 = pDVar28->x - pDVar9->x;\n                fVar57 = pDVar28->z - pDVar9->z;\n                fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;\n                iVar19 = iVar33;\n                if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }\n                fVar55 = fVar57;\n                iVar33 = iVar33 + 1;\n                pDVar9 = pDVar9 + 1;\n                iVar6 = iVar19;\n              }" { (expression_statement "fVar36 = pDVar28->y - pDVar9->y;" (assignment_expression "fVar36 = pDVar28->y - pDVar9->y" identifier = (binary_expression "pDVar28->y - pDVar9->y" (field_expression "pDVar28->y" identifier -> field_identifier) - (field_expression "pDVar9->y" identifier -> field_identifier))) ;) (expression_statement "fVar52 = pDVar28->x - pDVar9->x;" (assignment_expression "fVar52 = pDVar28->x - pDVar9->x" identifier = (binary_expression "pDVar28->x - pDVar9->x" (field_expression "pDVar28->x" identifier -> field_identifier) - (field_expression "pDVar9->x" identifier -> field_identifier))) ;) (expression_statement "fVar57 = pDVar28->z - pDVar9->z;" (assignment_expression "fVar57 = pDVar28->z - pDVar9->z" identifier = (binary_expression "pDVar28->z - pDVar9->z" (field_expression "pDVar28->z" identifier -> field_identifier) - (field_expression "pDVar9->z" identifier -> field_identifier))) ;) (expression_statement "fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36;" (assignment_expression "fVar57 = fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36" identifier = (binary_expression "fVar57 * fVar57 + fVar52 * fVar52 + fVar36 * fVar36" (binary_expression "fVar57 * fVar57 + fVar52 * fVar52" (binary_expression "fVar57 * fVar57" identifier * identifier) + (binary_expression "fVar52 * fVar52" identifier * identifier)) + (binary_expression "fVar36 * fVar36" identifier * identifier))) ;) (expression_statement "iVar19 = iVar33;" (assignment_expression "iVar19 = iVar33" identifier = identifier) ;) (if_statement "if (fVar55 <= fVar57) {\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }" if (parenthesized_expression "(fVar55 <= fVar57)" ( (binary_expression "fVar55 <= fVar57" identifier <= identifier) )) (compound_statement "{\n                  iVar19 = iVar6;\n                  fVar57 = fVar55;\n                }" { (expression_statement "iVar19 = iVar6;" (assignment_expression "iVar19 = iVar6" identifier = identifier) ;) (expression_statement "fVar57 = fVar55;" (assignment_expression "fVar57 = fVar55" identifier = identifier) ;) })) (expression_statement "fVar55 = fVar57;" (assignment_expression "fVar55 = fVar57" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "pDVar9 = pDVar9 + 1;" (assignment_expression "pDVar9 = pDVar9 + 1" identifier = (binary_expression "pDVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar19;" (assignment_expression "iVar6 = iVar19" identifier = identifier) ;) }) while (parenthesized_expression "(iVar33 != 4)" ( (binary_expression "iVar33 != 4" identifier != number_literal) )) ;) (expression_statement "*puVar13 = (uchar)iVar19;" (assignment_expression "*puVar13 = (uchar)iVar19" (pointer_expression "*puVar13" * identifier) = (cast_expression "(uchar)iVar19" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "pDVar28 = pDVar28 + 1;" (assignment_expression "pDVar28 = pDVar28 + 1" identifier = (binary_expression "pDVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s3 != puVar13)" ( (binary_expression "unaff_s3 != puVar13" identifier != identifier) )) ;) })) (expression_statement "puVar13 = indices;" (assignment_expression "puVar13 = indices" identifier = identifier) ;) (do_statement "do {\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          } while (unaff_s1 != unaff_s2);" do (compound_statement "{\n            while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *puVar13 = closest[iVar6];\n            puVar13 = puVar13 + 1;\n          }" { (while_statement "while (iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1) {\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" while (parenthesized_expression "(iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1)" ( (comma_expression "iVar6 = *unaff_s2, unaff_s4 = pDVar28, iVar6 == -1" (assignment_expression "iVar6 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) , (comma_expression "unaff_s4 = pDVar28, iVar6 == -1" (assignment_expression "unaff_s4 = pDVar28" identifier = identifier) , (binary_expression "iVar6 == -1" identifier == number_literal))) )) (compound_statement "{\n              unaff_s2 = unaff_s2 + 1;\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" { (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = '\x03';" (assignment_expression "*puVar13 = '\x03'" (pointer_expression "*puVar13" * identifier) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == unaff_s2) goto LAB_00216af4;" if (parenthesized_expression "(unaff_s1 == unaff_s2)" ( (binary_expression "unaff_s1 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_00216af4;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = closest[iVar6];" (assignment_expression "*puVar13 = closest[iVar6]" (pointer_expression "*puVar13" * identifier) = (subscript_expression "closest[iVar6]" identifier [ identifier ])) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != unaff_s2)" ( (binary_expression "unaff_s1 != unaff_s2" identifier != identifier) )) ;) }) (else_clause "else {\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }" else (compound_statement "{\n          if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          pbVar24 = closest;\n          pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          in_stack_fffffae0 = 0;\n          grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n          grid.w = 0.0;\n          xSumwSum.x = 0.0;\n          xSumwSum.y = 0.0;\n          xSumwSum.z = 0.0;\n          xSumwSum.w = 0.0;\n          axis_00.x = (float)pDVar41;\n          axis_00.y = (float)codes;\n          axis_00.z = (float)&xSumwSum;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          grid.z = grid.x;\n          ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);\n          iVar6 = 0;\n          unaff_s4 = (DDSVector4 *)0x0;\n          puVar11 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);\n          if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }\n          puVar13 = indices;\n          do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);\nLAB_002176b0:\n          unaff_s2 = piVar26 + 1;\n        }" { (if_statement "if (unaff_s0 == (uchar *)0x0) {\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }" if (parenthesized_expression "(unaff_s0 == (uchar *)0x0)" ( (binary_expression "unaff_s0 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            end.z = 0.0;\n            end.y = 0.0;\n            end.x = 0.0;\n            fVar55 = 0.0;\n            fVar57 = 0.0;\nLAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if ((float)uVar49 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);\n            fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar49 = CONCAT44(uVar47,fVar35);\n            goto joined_r0x00216814;\n          }" { (labeled_statement "LAB_00216788:\n            uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar49 = CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar47,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (expression_statement "end.z = 0.0;" (assignment_expression "end.z = 0.0" (field_expression "end.z" identifier . field_identifier) = number_literal) ;) (expression_statement "end.y = 0.0;" (assignment_expression "end.y = 0.0" (field_expression "end.y" identifier . field_identifier) = number_literal) ;) (expression_statement "end.x = 0.0;" (assignment_expression "end.x = 0.0" (field_expression "end.x" identifier . field_identifier) = number_literal) ;) (expression_statement "fVar55 = 0.0;" (assignment_expression "fVar55 = 0.0" identifier = number_literal) ;) (expression_statement "fVar57 = 0.0;" (assignment_expression "fVar57 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_002167a4:\n            fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar35 = fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar57 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_002167b4:\n            if (fVar55 < 0.0) goto LAB_0021720c;" statement_identifier : (if_statement "if (fVar55 < 0.0) goto LAB_0021720c;" if (parenthesized_expression "(fVar55 < 0.0)" ( (binary_expression "fVar55 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_0021720c;" goto statement_identifier ;))) (labeled_statement "LAB_002167c4:\n            if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c))" ( (binary_expression "fVar55 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier <= (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) )) (compound_statement "{\n              fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar55 = fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar55 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar55 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if ((float)uVar49 <= 0.0) goto LAB_00217224;" if (parenthesized_expression "((float)uVar49 <= 0.0)" ( (binary_expression "(float)uVar49 <= 0.0" (cast_expression "(float)uVar49" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00217224;" goto statement_identifier ;)) (labeled_statement "LAB_002167f4:\n            uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" statement_identifier : (expression_statement "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20);" (assignment_expression "uVar47 = (undefined4)((ulonglong)uVar49 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar49 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar57 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar57 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar49 = CONCAT44(uVar47,fVar35);" (assignment_expression "uVar49 = CONCAT44(uVar47,fVar35)" identifier = (call_expression "CONCAT44(uVar47,fVar35)" identifier (argument_list "(uVar47,fVar35)" ( identifier , identifier )))) ;) (goto_statement "goto joined_r0x00216814;" goto statement_identifier ;) })) (expression_statement "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "pbVar24 = closest;" (assignment_expression "pbVar24 = closest" identifier = identifier) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_003a8bc4 + 0x2674)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2674)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2674)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2674" identifier + number_literal) )))) ;) (expression_statement "grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "grid.y = *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (field_expression "grid.y" identifier . field_identifier) = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) ;) (expression_statement "in_stack_fffffae0 = 0;" (assignment_expression "in_stack_fffffae0 = 0" identifier = number_literal) ;) (expression_statement "grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "grid.x = *(float *)(PTR_UINT_003a8950 + -0x1e70)" (field_expression "grid.x" identifier . field_identifier) = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "grid.w = 0.0;" (assignment_expression "grid.w = 0.0" (field_expression "grid.w" identifier . field_identifier) = number_literal) ;) (expression_statement "xSumwSum.x = 0.0;" (assignment_expression "xSumwSum.x = 0.0" (field_expression "xSumwSum.x" identifier . field_identifier) = number_literal) ;) (expression_statement "xSumwSum.y = 0.0;" (assignment_expression "xSumwSum.y = 0.0" (field_expression "xSumwSum.y" identifier . field_identifier) = number_literal) ;) (expression_statement "xSumwSum.z = 0.0;" (assignment_expression "xSumwSum.z = 0.0" (field_expression "xSumwSum.z" identifier . field_identifier) = number_literal) ;) (expression_statement "xSumwSum.w = 0.0;" (assignment_expression "xSumwSum.w = 0.0" (field_expression "xSumwSum.w" identifier . field_identifier) = number_literal) ;) (expression_statement "axis_00.x = (float)pDVar41;" (assignment_expression "axis_00.x = (float)pDVar41" (field_expression "axis_00.x" identifier . field_identifier) = (cast_expression "(float)pDVar41" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "axis_00.y = (float)codes;" (assignment_expression "axis_00.y = (float)codes" (field_expression "axis_00.y" identifier . field_identifier) = (cast_expression "(float)codes" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "axis_00.z = (float)&xSumwSum;" (assignment_expression "axis_00.z = (float)&xSumwSum" (field_expression "axis_00.z" identifier . field_identifier) = (cast_expression "(float)&xSumwSum" ( (type_descriptor "float" primitive_type) ) (pointer_expression "&xSumwSum" & identifier))) ;) (expression_statement "local_454 = local_458;" (assignment_expression "local_454 = local_458" identifier = identifier) ;) (expression_statement "local_450 = local_458;" (assignment_expression "local_450 = local_458" identifier = identifier) ;) (expression_statement "local_44c = local_458;" (assignment_expression "local_44c = local_458" identifier = identifier) ;) (expression_statement "grid.z = grid.x;" (assignment_expression "grid.z = grid.x" (field_expression "grid.z" identifier . field_identifier) = (field_expression "grid.x" identifier . field_identifier)) ;) (expression_statement "ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0);" (call_expression "ConstructOrdering((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0)" identifier (argument_list "((size_t)unaff_s0,pDVar28,axis_00,pDVar43,pDVar39,pbVar24,0)" ( (cast_expression "(size_t)unaff_s0" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "unaff_s4 = (DDSVector4 *)0x0;" (assignment_expression "unaff_s4 = (DDSVector4 *)0x0" identifier = (cast_expression "(DDSVector4 *)0x0" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar11 = PTR_LAB_003a8bc8 + -0x7df4;" (assignment_expression "puVar11 = PTR_LAB_003a8bc8 + -0x7df4" identifier = (binary_expression "PTR_LAB_003a8bc8 + -0x7df4" identifier + number_literal)) ;) (do_statement "do {\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          } while (iVar33 != 0);" do (compound_statement "{\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            end_1.x = (float)unaff_s0;\n            end_1.y = (float)&local_458;\n            end_1.z = (float)&start;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);\n            if (iVar6 != 0) break;\n            iVar6 = 1;\n            in_stack_fffffae0 = iVar6;\n            iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);\n          }" { (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "end_1.x = (float)unaff_s0;" (assignment_expression "end_1.x = (float)unaff_s0" (field_expression "end_1.x" identifier . field_identifier) = (cast_expression "(float)unaff_s0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_1.y = (float)&local_458;" (assignment_expression "end_1.y = (float)&local_458" (field_expression "end_1.y" identifier . field_identifier) = (cast_expression "(float)&local_458" ( (type_descriptor "float" primitive_type) ) (pointer_expression "&local_458" & identifier))) ;) (expression_statement "end_1.z = (float)&start;" (assignment_expression "end_1.z = (float)&start" (field_expression "end_1.z" identifier . field_identifier) = (cast_expression "(float)&start" ( (type_descriptor "float" primitive_type) ) (pointer_expression "&start" & identifier))) ;) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(puVar11,&end_1,extraout_v1,0)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" ( (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" * (cast_expression "(code *)PTR_GOMP_parallel_003a9198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,&end_1,extraout_v1,0)" ( identifier , (pointer_expression "&end_1" & identifier) , identifier , number_literal ))) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (expression_statement "in_stack_fffffae0 = iVar6;" (assignment_expression "in_stack_fffffae0 = iVar6" identifier = identifier) ;) (expression_statement "iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24);" (assignment_expression "iVar33 = (*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24)" identifier = (call_expression "(*pcVar32)(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(unaff_s0,pDVar28,end.x - start.x,end.y - start.y,end.z - start.z,\n                                codes,&xSumwSum,pbVar24)" ( identifier , identifier , (binary_expression "end.x - start.x" (field_expression "end.x" identifier . field_identifier) - (field_expression "start.x" identifier . field_identifier)) , (binary_expression "end.y - start.y" (field_expression "end.y" identifier . field_identifier) - (field_expression "start.y" identifier . field_identifier)) , (binary_expression "end.z - start.z" (field_expression "end.z" identifier . field_identifier) - (field_expression "start.z" identifier . field_identifier)) , identifier , (pointer_expression "&xSumwSum" & identifier) , identifier )))) ;) }) while (parenthesized_expression "(iVar33 != 0)" ( (binary_expression "iVar33 != 0" identifier != number_literal) )) ;) (if_statement "if (0 < (int)unaff_s3) {\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }" if (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar22 = pbVar24 + (int)unaff_s3;\n            do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);\n          }" { (expression_statement "pbVar22 = pbVar24 + (int)unaff_s3;" (assignment_expression "pbVar22 = pbVar24 + (int)unaff_s3" identifier = (binary_expression "pbVar24 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            } while (pbVar22 != pbVar24);" do (compound_statement "{\n              bVar1 = *pbVar24;\n              pbVar24 = pbVar24 + 1;\n              unordered[bVar1] = '\x01';\n            }" { (expression_statement "bVar1 = *pbVar24;" (assignment_expression "bVar1 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "unordered[bVar1] = '\x01';" (assignment_expression "unordered[bVar1] = '\x01'" (subscript_expression "unordered[bVar1]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) }) while (parenthesized_expression "(pbVar22 != pbVar24)" ( (binary_expression "pbVar22 != pbVar24" identifier != identifier) )) ;) })) (expression_statement "puVar13 = indices;" (assignment_expression "puVar13 = indices" identifier = identifier) ;) (do_statement "do {\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          } while (unaff_s1 != piVar26 + 1);" do (compound_statement "{\n            while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }\n            *puVar13 = unordered[*piVar26];\n            puVar13 = puVar13 + 1;\n            unaff_s2 = piVar26 + 1;\n          }" { (while_statement "while (piVar26 = unaff_s2, *piVar26 == -1) {\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }" while (parenthesized_expression "(piVar26 = unaff_s2, *piVar26 == -1)" ( (comma_expression "piVar26 = unaff_s2, *piVar26 == -1" (assignment_expression "piVar26 = unaff_s2" identifier = identifier) , (binary_expression "*piVar26 == -1" (pointer_expression "*piVar26" * identifier) == number_literal)) )) (compound_statement "{\n              *puVar13 = '\x03';\n              puVar13 = puVar13 + 1;\n              unaff_s2 = piVar26 + 1;\n              if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;\n            }" { (expression_statement "*puVar13 = '\x03';" (assignment_expression "*puVar13 = '\x03'" (pointer_expression "*puVar13" * identifier) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == piVar26 + 1) goto LAB_002176b0;" if (parenthesized_expression "(unaff_s1 == piVar26 + 1)" ( (binary_expression "unaff_s1 == piVar26 + 1" identifier == (binary_expression "piVar26 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002176b0;" goto statement_identifier ;)) })) (expression_statement "*puVar13 = unordered[*piVar26];" (assignment_expression "*puVar13 = unordered[*piVar26]" (pointer_expression "*puVar13" * identifier) = (subscript_expression "unordered[*piVar26]" identifier [ (pointer_expression "*piVar26" * identifier) ])) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != piVar26 + 1)" ( (binary_expression "unaff_s1 != piVar26 + 1" identifier != (binary_expression "piVar26 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_002176b0:\n          unaff_s2 = piVar26 + 1;" statement_identifier : (expression_statement "unaff_s2 = piVar26 + 1;" (assignment_expression "unaff_s2 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_00216af4:\n        start_00.x = end.x;" statement_identifier : (expression_statement "start_00.x = end.x;" (assignment_expression "start_00.x = end.x" (field_expression "start_00.x" identifier . field_identifier) = (field_expression "end.x" identifier . field_identifier)) ;)) (expression_statement "start_00.y = end.y;" (assignment_expression "start_00.y = end.y" (field_expression "start_00.y" identifier . field_identifier) = (field_expression "end.y" identifier . field_identifier)) ;) (expression_statement "start_00.z = end.z;" (assignment_expression "start_00.z = end.z" (field_expression "start_00.z" identifier . field_identifier) = (field_expression "end.z" identifier . field_identifier)) ;) (expression_statement "end_00.x = (float)indices;" (assignment_expression "end_00.x = (float)indices" (field_expression "end_00.x" identifier . field_identifier) = (cast_expression "(float)indices" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_00.y = (float)in_stack_fffffae0;" (assignment_expression "end_00.y = (float)in_stack_fffffae0" (field_expression "end_00.y" identifier . field_identifier) = (cast_expression "(float)in_stack_fffffae0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_00.z = in_stack_fffffae4;" (assignment_expression "end_00.z = in_stack_fffffae4" (field_expression "end_00.z" identifier . field_identifier) = identifier) ;) (expression_statement "WriteIndices(image,start_00,end_00,(uchar *)start.x);" (call_expression "WriteIndices(image,start_00,end_00,(uchar *)start.x)" identifier (argument_list "(image,start_00,end_00,(uchar *)start.x)" ( identifier , identifier , identifier , (cast_expression "(uchar *)start.x" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "start.x" identifier . field_identifier)) ))) ;) })) })) (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;) (expression_statement "uVar5 = image->rows;" (assignment_expression "uVar5 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "pDVar28 = unaff_s4;" (assignment_expression "pDVar28 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 <= (int)local_4c8)" ( (binary_expression "(int)uVar5 <= (int)local_4c8" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}\n\n" (function_definition "void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" primitive_type (function_declarator "FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "float *pfVar8;" primitive_type (pointer_declarator "*pfVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "float *pfVar18;" primitive_type (pointer_declarator "*pfVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "float *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "float *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "float *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "float *pfVar22;" primitive_type (pointer_declarator "*pfVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "float fVar28;" primitive_type identifier ;) (declaration "float fVar29;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "float fVar30;" primitive_type identifier ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "float fVar34;" primitive_type identifier ;) (declaration "float fVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "undefined8 uVar39;" type_identifier identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "float fVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "float fVar44;" primitive_type identifier ;) (declaration "float fVar46;" primitive_type identifier ;) (declaration "ulonglong uVar45;" type_identifier identifier ;) (declaration "float fVar47;" primitive_type identifier ;) (declaration "float fVar48;" primitive_type identifier ;) (declaration "float fVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "uint uVar52;" type_identifier identifier ;) (declaration "undefined *local_50c;" type_identifier (pointer_declarator "*local_50c" * identifier) ;) (declaration "double local_508;" primitive_type identifier ;) (declaration "double local_500;" primitive_type identifier ;) (declaration "double local_4f8;" primitive_type identifier ;) (declaration "double local_4f0;" primitive_type identifier ;) (declaration "undefined *local_4e8;" type_identifier (pointer_declarator "*local_4e8" * identifier) ;) (declaration "int local_4e4;" primitive_type identifier ;) (declaration "uint local_4dc;" type_identifier identifier ;) (declaration "uint local_4d0;" type_identifier identifier ;) (declaration "uint local_4cc;" type_identifier identifier ;) (declaration "uint local_4c8;" type_identifier identifier ;) (declaration "float local_488;" primitive_type identifier ;) (declaration "float local_484;" primitive_type identifier ;) (declaration "float local_480;" primitive_type identifier ;) (declaration "float local_47c;" primitive_type identifier ;) (declaration "float local_478;" primitive_type identifier ;) (declaration "float local_474;" primitive_type identifier ;) (declaration "float local_470;" primitive_type identifier ;) (declaration "float local_46c;" primitive_type identifier ;) (declaration "float local_468;" primitive_type identifier ;) (declaration "float local_464;" primitive_type identifier ;) (declaration "float local_460;" primitive_type identifier ;) (declaration "float local_45c;" primitive_type identifier ;) (declaration "undefined4 local_458;" type_identifier identifier ;) (declaration "undefined4 local_454;" type_identifier identifier ;) (declaration "undefined4 local_450;" type_identifier identifier ;) (declaration "undefined4 local_44c;" type_identifier identifier ;) (declaration "undefined4 local_448;" type_identifier identifier ;) (declaration "undefined4 local_444;" type_identifier identifier ;) (declaration "undefined4 local_440;" type_identifier identifier ;) (declaration "undefined4 local_43c;" type_identifier identifier ;) (declaration "undefined4 local_438;" type_identifier identifier ;) (declaration "undefined4 local_434;" type_identifier identifier ;) (declaration "undefined4 local_430;" type_identifier identifier ;) (declaration "undefined4 local_42c;" type_identifier identifier ;) (declaration "undefined4 local_428;" type_identifier identifier ;) (declaration "undefined4 local_424;" type_identifier identifier ;) (declaration "undefined4 local_420;" type_identifier identifier ;) (declaration "undefined4 local_41c;" type_identifier identifier ;) (declaration "undefined4 local_418;" type_identifier identifier ;) (declaration "undefined4 local_414;" type_identifier identifier ;) (declaration "undefined4 local_410;" type_identifier identifier ;) (declaration "undefined4 local_40c;" type_identifier identifier ;) (declaration "undefined4 local_408;" type_identifier identifier ;) (declaration "undefined4 local_404;" type_identifier identifier ;) (declaration "undefined4 local_400;" type_identifier identifier ;) (declaration "undefined4 local_3fc;" type_identifier identifier ;) (declaration "undefined4 local_3f8;" type_identifier identifier ;) (declaration "undefined4 local_3f4;" type_identifier identifier ;) (declaration "undefined4 local_3f0;" type_identifier identifier ;) (declaration "undefined4 local_3ec;" type_identifier identifier ;) (declaration "undefined4 local_3e8;" type_identifier identifier ;) (declaration "undefined4 local_3e4;" type_identifier identifier ;) (declaration "undefined4 local_3e0;" type_identifier identifier ;) (declaration "undefined4 local_3dc;" type_identifier identifier ;) (declaration "float local_3d8;" primitive_type identifier ;) (declaration "float local_3d4;" primitive_type identifier ;) (declaration "float local_3d0;" primitive_type identifier ;) (declaration "undefined4 local_3cc;" type_identifier identifier ;) (declaration "byte *local_3c8;" type_identifier (pointer_declarator "*local_3c8" * identifier) ;) (declaration "undefined4 *local_3c4;" type_identifier (pointer_declarator "*local_3c4" * identifier) ;) (declaration "float *local_3c0;" primitive_type (pointer_declarator "*local_3c0" * identifier) ;) (declaration "float *local_3bc;" primitive_type (pointer_declarator "*local_3bc" * identifier) ;) (declaration "undefined4 *local_3b8;" type_identifier (pointer_declarator "*local_3b8" * identifier) ;) (declaration "undefined4 *local_3b4;" type_identifier (pointer_declarator "*local_3b4" * identifier) ;) (declaration "undefined4 *local_3b0;" type_identifier (pointer_declarator "*local_3b0" * identifier) ;) (declaration "undefined4 *local_3ac;" type_identifier (pointer_declarator "*local_3ac" * identifier) ;) (declaration "float *local_3a8;" primitive_type (pointer_declarator "*local_3a8" * identifier) ;) (declaration "undefined4 *local_3a4;" type_identifier (pointer_declarator "*local_3a4" * identifier) ;) (declaration "undefined4 *local_3a0;" type_identifier (pointer_declarator "*local_3a0" * identifier) ;) (declaration "undefined4 *local_39c;" type_identifier (pointer_declarator "*local_39c" * identifier) ;) (declaration "float *local_398;" primitive_type (pointer_declarator "*local_398" * identifier) ;) (declaration "uint local_394;" type_identifier identifier ;) (declaration "float *local_390;" primitive_type (pointer_declarator "*local_390" * identifier) ;) (declaration "int local_38c;" primitive_type identifier ;) (declaration "int local_388;" primitive_type identifier ;) (declaration "int local_384;" primitive_type identifier ;) (declaration "float *local_380;" primitive_type (pointer_declarator "*local_380" * identifier) ;) (declaration "uint local_37c [16];" type_identifier (array_declarator "local_37c [16]" identifier [ number_literal ]) ;) (declaration "float local_33c [16];" primitive_type (array_declarator "local_33c [16]" identifier [ number_literal ]) ;) (declaration "float local_2fc [64];" primitive_type (array_declarator "local_2fc [64]" identifier [ number_literal ]) ;) (declaration "float local_1fc;" primitive_type identifier ;) (declaration "float local_1f8;" primitive_type identifier ;) (declaration "float local_1f4;" primitive_type identifier ;) (declaration "float local_1f0;" primitive_type identifier ;) (declaration "float local_1ec;" primitive_type identifier ;) (declaration "float local_1e8;" primitive_type identifier ;) (declaration "float local_1e4;" primitive_type identifier ;) (declaration "float local_1e0;" primitive_type identifier ;) (declaration "float local_1dc;" primitive_type identifier ;) (declaration "float local_1d8;" primitive_type identifier ;) (declaration "float local_1d4;" primitive_type identifier ;) (declaration "float local_1d0;" primitive_type identifier ;) (declaration "byte local_fc [16];" type_identifier (array_declarator "local_fc [16]" identifier [ number_literal ]) ;) (declaration "byte local_ec [16];" type_identifier (array_declarator "local_ec [16]" identifier [ number_literal ]) ;) (declaration "byte local_dc [16];" type_identifier (array_declarator "local_dc [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_cc [112];" type_identifier (array_declarator "abStack_cc [112]" identifier [ number_literal ]) ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar4 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 < 1) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 < 1)" ( (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) (expression_statement "local_4d0 = 0;" (assignment_expression "local_4d0 = 0" identifier = number_literal) ;) (expression_statement "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "local_4f8 = *(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) ))))) ;) (labeled_statement "LAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" do (compound_statement "{\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  }" { (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_4c8 = local_4d0 + 4;" (assignment_expression "local_4c8 = local_4d0 + 4" identifier = (binary_expression "local_4d0 + 4" identifier + number_literal)) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_508._0_4_ < 1) goto LAB_00216b38;" if (parenthesized_expression "((int)local_508._0_4_ < 1)" ( (binary_expression "(int)local_508._0_4_ < 1" (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (goto_statement "goto LAB_00216b38;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" { (expression_statement "local_4cc = uVar23 + 4;" (assignment_expression "local_4cc = uVar23 + 4" identifier = (binary_expression "uVar23 + 4" identifier + number_literal)) ;) (if_statement "if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" if (parenthesized_expression "(local_4cc < local_508._0_4_)" ( (binary_expression "local_4cc < local_508._0_4_" identifier < (field_expression "local_508._0_4_" identifier . field_identifier)) )) (compound_statement "{\n        local_508._0_4_ = 4;\n      }" { (expression_statement "local_508._0_4_ = 4;" (assignment_expression "local_508._0_4_ = 4" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" else (compound_statement "{\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" { (expression_statement "local_508._0_4_ = local_508._0_4_ - uVar23;" (assignment_expression "local_508._0_4_ = local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) - identifier)) ;) }))) (if_statement "if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }" if (parenthesized_expression "(local_4c8 < uVar5)" ( (binary_expression "local_4c8 < uVar5" identifier < identifier) )) (compound_statement "{\n        local_4e4 = 4;\n      }" { (expression_statement "local_4e4 = 4;" (assignment_expression "local_4e4 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        local_4e4 = uVar5 - local_4d0;\n      }" else (compound_statement "{\n        local_4e4 = uVar5 - local_4d0;\n      }" { (expression_statement "local_4e4 = uVar5 - local_4d0;" (assignment_expression "local_4e4 = uVar5 - local_4d0" identifier = (binary_expression "uVar5 - local_4d0" identifier - identifier)) ;) }))) (expression_statement "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);" (assignment_expression "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" identifier = (call_expression "(*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" (parenthesized_expression "(*(code *)PTR_GetVirtualPixels_003a9764)" ( (pointer_expression "*(code *)PTR_GetVirtualPixels_003a9764" * (cast_expression "(code *)PTR_GetVirtualPixels_003a9764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" ( identifier , identifier , identifier , (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , 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) ;) (expression_statement "puVar9 = PTR_LAB_003a88e0;" (assignment_expression "puVar9 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = local_33c;" (assignment_expression "unaff_s2 = local_33c" identifier = identifier) ;) (expression_statement "unaff_s4 = local_2fc;" (assignment_expression "unaff_s4 = local_2fc" identifier = identifier) ;) (expression_statement "puVar7 = local_37c;" (assignment_expression "puVar7 = local_37c" identifier = identifier) ;) (expression_statement "unaff_s1 = unaff_s2;" (assignment_expression "unaff_s1 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);" do (compound_statement "{\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "*unaff_s1 = -NAN;" (assignment_expression "*unaff_s1 = -NAN" (pointer_expression "*unaff_s1" * identifier) = (unary_expression "-NAN" - identifier)) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = 0xffffffff;" (assignment_expression "*puVar7 = 0xffffffff" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != unaff_s1)" ( (binary_expression "unaff_s4 != unaff_s1" identifier != identifier) )) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" if (parenthesized_expression "(local_4e4 < 1)" ( (binary_expression "local_4e4 < 1" identifier < number_literal) )) (compound_statement "{\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }" { (if_statement "if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" if (parenthesized_expression "(param_2 != 0x35545844)" ( (binary_expression "param_2 != 0x35545844" identifier != number_literal) )) (compound_statement "{\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" { (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" identifier = number_literal) ;) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" identifier = number_literal) ;) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" identifier = number_literal) ;) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" identifier = number_literal) ;) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" identifier = number_literal) ;) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" identifier = number_literal) ;) (expression_statement "unaff_s3 = (byte *)0x0;" (assignment_expression "unaff_s3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;) })) (expression_statement "local_508._0_4_ = 0;" (assignment_expression "local_508._0_4_ = 0" (field_expression "local_508._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "local_4dc = 5;" (assignment_expression "local_4dc = 5" identifier = number_literal) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_002176f8:\n        pbVar11 = local_ec;" statement_identifier : (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" identifier = identifier) ;)) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2574)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2574" identifier + number_literal) )))) ;) (expression_statement "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);" (assignment_expression "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" identifier = (call_expression "FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" identifier (argument_list "(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" ( (field_expression "local_508._0_4_" identifier . field_identifier) , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "uVar20 = uVar23;" (assignment_expression "uVar20 = uVar23" identifier = identifier) ;) (if_statement "if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" if (parenthesized_expression "((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7))" ( (binary_expression "(uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)" (parenthesized_expression "(uVar23 < uVar5)" ( (binary_expression "uVar23 < uVar5" identifier < identifier) )) || (parenthesized_expression "(uVar20 = uVar5, uVar23 - uVar5 < 7)" ( (comma_expression "uVar20 = uVar5, uVar23 - uVar5 < 7" (assignment_expression "uVar20 = uVar5" identifier = identifier) , (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" { (expression_statement "uVar5 = uVar20;" (assignment_expression "uVar5 = uVar20" identifier = identifier) ;) (expression_statement "uVar23 = uVar5 + 7;" (assignment_expression "uVar23 = uVar5 + 7" identifier = (binary_expression "uVar5 + 7" identifier + number_literal)) ;) (if_statement "if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }" if (parenthesized_expression "(0xff < uVar23)" ( (binary_expression "0xff < uVar23" number_literal < identifier) )) (compound_statement "{\n            uVar23 = 0xff;\n          }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }" if (parenthesized_expression "(uVar23 - uVar5 < 7)" ( (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" identifier - identifier) < number_literal) )) (compound_statement "{\n            uVar5 = uVar23 - 7;\n          }" { (expression_statement "uVar5 = uVar23 - 7;" (assignment_expression "uVar5 = uVar23 - 7" identifier = (binary_expression "uVar23 - 7" identifier - number_literal)) ;) })) })) (expression_statement "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);" (assignment_expression "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" identifier = (call_expression "(*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar5,uVar23,7,local_37c,local_dc)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" if (parenthesized_expression "(uVar20 < uVar12)" ( (binary_expression "uVar20 < uVar12" identifier < identifier) )) (compound_statement "{\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" { (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar11;" (assignment_expression "pbVar24 = pbVar11" identifier = identifier) ;) (do_statement "do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);" do (compound_statement "{\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          }" { (while_statement "while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" while (parenthesized_expression "(bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0)" ( (comma_expression "bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) , (comma_expression "local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_508._0_4_ = uVar23" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) , (comma_expression "local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_4dc = uVar5" identifier = identifier) , (binary_expression "bVar1 == 0" identifier == number_literal)))) )) (compound_statement "{\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" { (expression_statement "*pbVar24 = 1;" (assignment_expression "*pbVar24 = 1" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (labeled_statement "LAB_002177a8:\n              pbVar10 = pbVar10 + 1;" statement_identifier : (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;)) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (if_statement "if (abStack_cc == pbVar10) goto LAB_002177d8;" if (parenthesized_expression "(abStack_cc == pbVar10)" ( (binary_expression "abStack_cc == pbVar10" identifier == identifier) )) (goto_statement "goto LAB_002177d8;" goto statement_identifier ;)) })) (if_statement "if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" { (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (goto_statement "goto LAB_002177a8;" goto statement_identifier ;) })) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar24 = 9 - bVar1;" (assignment_expression "*pbVar24 = 9 - bVar1" (pointer_expression "*pbVar24" * identifier) = (binary_expression "9 - bVar1" number_literal - identifier)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(abStack_cc != pbVar10)" ( (binary_expression "abStack_cc != pbVar10" identifier != identifier) )) ;) })) (labeled_statement "LAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" statement_identifier : (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_508._0_4_ & 0xff)" ( identifier , (binary_expression "local_508._0_4_ & 0xff" (field_expression "local_508._0_4_" identifier . field_identifier) & number_literal) ))) ;)) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_4dc & 0xff)" ( identifier , (binary_expression "local_4dc & 0xff" identifier & number_literal) ))) ;) (do_statement "do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);" do (compound_statement "{\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (do_statement "do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);" do (compound_statement "{\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = uVar5 & 0x1f;" (assignment_expression "uVar20 = uVar5 & 0x1f" identifier = (binary_expression "uVar5 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar5 = uVar5 + 3;" (assignment_expression "uVar5 = uVar5 + 3" identifier = (binary_expression "uVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 | (uint)bVar1 << uVar20;" (assignment_expression "uVar23 = uVar23 | (uint)bVar1 << uVar20" identifier = (binary_expression "uVar23 | (uint)bVar1 << uVar20" identifier | (binary_expression "(uint)bVar1 << uVar20" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << identifier))) ;) }) while (parenthesized_expression "(uVar5 != 0x18)" ( (binary_expression "uVar5 != 0x18" identifier != number_literal) )) ;) (expression_statement "pbVar11 = pbVar11 + 8;" (assignment_expression "pbVar11 = pbVar11 + 8" identifier = (binary_expression "pbVar11 + 8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar23 & 0xff)" ( identifier , (binary_expression "uVar23 & 0xff" identifier & number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(uVar23 << 0x10) >> 0x18)" ( identifier , (binary_expression "(uVar23 << 0x10) >> 0x18" (parenthesized_expression "(uVar23 << 0x10)" ( (binary_expression "uVar23 << 0x10" identifier << number_literal) )) >> number_literal) ))) ;) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" * (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(uVar23 << 8) >> 0x18)" ( identifier , (binary_expression "(uVar23 << 8) >> 0x18" (parenthesized_expression "(uVar23 << 8)" ( (binary_expression "uVar23 << 8" identifier << number_literal) )) >> number_literal) ))) ;) }) while (parenthesized_expression "(local_dc != pbVar11)" ( (binary_expression "local_dc != pbVar11" identifier != identifier) )) ;) }) (else_clause "else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" else (compound_statement "{\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" identifier = number_literal) ;) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar51 = *(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) ))))) ;) (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = 0;" (assignment_expression "local_4dc = 0" identifier = number_literal) ;) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e5c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e5c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e5c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e5c" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = unaff_s2;" (assignment_expression "pfVar22 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);" do (compound_statement "{\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        }" { (if_statement "if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" if (parenthesized_expression "(0 < (int)local_508._0_4_)" ( (binary_expression "0 < (int)local_508._0_4_" number_literal < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (compound_statement "{\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" { (expression_statement "dVar36 = *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar36 = *(double *)(puVar9 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar9 + 0x1400)" * (cast_expression "(double *)(puVar9 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1400)" ( (binary_expression "puVar9 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar42 = *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar42 = *(double *)(local_50c + -0x5af0)" identifier = (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar38 = *(double *)(puVar9 + 0x1410)" identifier = (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(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)) ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar14 = *(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 "dVar40 = *(double *)(local_4e8 + -0x5ae8);" (assignment_expression "dVar40 = *(double *)(local_4e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = local_37c + iVar26 * 4;" (assignment_expression "puVar7 = local_37c + iVar26 * 4" identifier = (binary_expression "local_37c + iVar26 * 4" identifier + (binary_expression "iVar26 * 4" identifier * number_literal))) ;) (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" identifier = identifier) ;) (expression_statement "pfVar18 = pfVar22;" (assignment_expression "pfVar18 = pfVar22" identifier = identifier) ;) (do_statement "do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);" do (compound_statement "{\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            }" { (if_statement "if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }" if (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (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) )) (compound_statement "{\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }" { (labeled_statement "LAB_00216c58:\n                  uVar12 = 0xff;" statement_identifier : (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;)) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" { (expression_statement "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (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)) ))))) ;) (if_statement "if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar43 <= 0.0)" ( (binary_expression "fVar43 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" { (expression_statement "dVar27 = (double)fVar43 / dVar42;" (assignment_expression "dVar27 = (double)fVar43 / dVar42" identifier = (binary_expression "(double)fVar43 / dVar42" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar40 <= dVar27) goto LAB_00216c58;" if (parenthesized_expression "(dVar40 <= dVar27)" ( (binary_expression "dVar40 <= dVar27" identifier <= identifier) )) (goto_statement "goto LAB_00216c58;" goto statement_identifier ;)) (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" identifier = (binary_expression "dVar27 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }" if (parenthesized_expression "(dVar38 <= dVar27)" ( (binary_expression "dVar38 <= dVar27" identifier <= identifier) )) (compound_statement "{\n                      dVar27 = dVar27 - dVar38;\n                    }" { (expression_statement "dVar27 = dVar27 - dVar38;" (assignment_expression "dVar27 = dVar27 - dVar38" identifier = (binary_expression "dVar27 - dVar38" identifier - identifier)) ;) })) (expression_statement "uVar12 = (int)dVar27 & 0xff;" (assignment_expression "uVar12 = (int)dVar27 & 0xff" identifier = (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal)) ;) (if_statement "if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }" if (parenthesized_expression "(uVar12 < uVar5)" ( (binary_expression "uVar12 < uVar5" identifier < identifier) )) (compound_statement "{\n                      uVar5 = uVar12;\n                    }" { (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" identifier = identifier) ;) })) (if_statement "if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }" if (parenthesized_expression "(uVar23 < uVar12)" ( (binary_expression "uVar23 < uVar12" identifier < identifier) )) (compound_statement "{\n                      uVar23 = uVar12;\n                    }" { (expression_statement "uVar23 = uVar12;" (assignment_expression "uVar23 = uVar12" identifier = identifier) ;) })) (if_statement "if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" { (if_statement "if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }" if (parenthesized_expression "(uVar12 < uVar20)" ( (binary_expression "uVar12 < uVar20" identifier < identifier) )) (compound_statement "{\n                        uVar20 = uVar12;\n                      }" { (expression_statement "uVar20 = uVar12;" (assignment_expression "uVar20 = uVar12" identifier = identifier) ;) })) (if_statement "if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }" if (parenthesized_expression "((uVar12 != 0xff) && (local_4dc < uVar12))" ( (binary_expression "(uVar12 != 0xff) && (local_4dc < uVar12)" (parenthesized_expression "(uVar12 != 0xff)" ( (binary_expression "uVar12 != 0xff" identifier != number_literal) )) && (parenthesized_expression "(local_4dc < uVar12)" ( (binary_expression "local_4dc < uVar12" identifier < identifier) ))) )) (compound_statement "{\n                        local_4dc = uVar12;\n                      }" { (expression_statement "local_4dc = uVar12;" (assignment_expression "local_4dc = uVar12" identifier = identifier) ;) })) })) }))) }))) }) (else_clause "else {\n                uVar12 = 0xff;\n              }" else (compound_statement "{\n                uVar12 = 0xff;\n              }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }))) (expression_statement "*puVar7 = uVar12;" (assignment_expression "*puVar7 = uVar12" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (if_statement "if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" if (parenthesized_expression "((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40))" ( (binary_expression "(0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) && (parenthesized_expression "(dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" ( (comma_expression "dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "dVar27 = (double)fVar29 / dVar42" identifier = (binary_expression "(double)fVar29 / dVar42" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) , (comma_expression "fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "fVar43 = fVar28" identifier = identifier) , (binary_expression "dVar27 < dVar40" identifier < identifier))) ))) )) (compound_statement "{\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" { (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" identifier = (binary_expression "dVar27 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }" if (parenthesized_expression "(dVar51 <= dVar27)" ( (binary_expression "dVar51 <= dVar27" identifier <= identifier) )) (compound_statement "{\n                  dVar27 = dVar27 - dVar51;\n                }" { (expression_statement "dVar27 = dVar27 - dVar51;" (assignment_expression "dVar27 = dVar27 - dVar51" identifier = (binary_expression "dVar27 - dVar51" identifier - identifier)) ;) })) (expression_statement "fVar43 = (float)((int)dVar27 & 0xff) / fVar49;" (assignment_expression "fVar43 = (float)((int)dVar27 & 0xff) / fVar49" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / fVar49" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / identifier)) ;) })) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x14) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 4" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar27 = (double)fVar29 / local_500;" (assignment_expression "dVar27 = (double)fVar29 / local_500" identifier = (binary_expression "(double)fVar29 / local_500" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (expression_statement "fVar34 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar34 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar27 < local_4f8)" ( (binary_expression "dVar27 < local_4f8" identifier < identifier) )) (compound_statement "{\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar27 = dVar27 + dVar50;" (assignment_expression "dVar27 = dVar27 + dVar50" identifier = (binary_expression "dVar27 + dVar50" identifier + identifier)) ;) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" ( (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" { (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" identifier = (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" * (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x20) * 4)" ( (binary_expression "iVar16 + *(int *)(iVar14 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 4" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" { (expression_statement "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0)" identifier = (binary_expression "(double)fVar29 / *(double *)(local_50c + -0x5af0)" (cast_expression "(double)fVar29" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(local_50c + -0x5af0)" * (cast_expression "(double *)(local_50c + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50c + -0x5af0)" ( (binary_expression "local_50c + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "fVar48 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar48 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" if (parenthesized_expression "(dVar27 < *(double *)(local_4e8 + -0x5ae8))" ( (binary_expression "dVar27 < *(double *)(local_4e8 + -0x5ae8)" identifier < (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" * (cast_expression "(double *)(local_4e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4e8 + -0x5ae8)" ( (binary_expression "local_4e8 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" { (expression_statement "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400)" identifier = (binary_expression "dVar27 + *(double *)(puVar9 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar9 + 0x1400)" * (cast_expression "(double *)(puVar9 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1400)" ( (binary_expression "puVar9 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" if (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" ( (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" { (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" identifier = (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar9 + 0x1410)" * (cast_expression "(double *)(puVar9 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1410)" ( (binary_expression "puVar9 + 0x1410" identifier + number_literal) )))))) ;) })) (expression_statement "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" identifier = (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)dVar27 & 0xff)" ( (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) ))) / (pointer_expression "*(float *)(puVar3 + -0x5a94)" * (cast_expression "(float *)(puVar3 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a94)" ( (binary_expression "puVar3 + -0x5a94" identifier + number_literal) )))))) ;) })) })) (expression_statement "fVar29 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar29 = *(float *)(puVar3 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar3 + -0x5a8c)" * (cast_expression "(float *)(puVar3 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x5a8c)" ( (binary_expression "puVar3 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" { (expression_statement "fVar29 = (float)(uVar12 + 1) * fVar47;" (assignment_expression "fVar29 = (float)(uVar12 + 1) * fVar47" identifier = (binary_expression "(float)(uVar12 + 1) * fVar47" (cast_expression "(float)(uVar12 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar12 + 1)" ( (binary_expression "uVar12 + 1" identifier + number_literal) ))) * identifier)) ;) })) (expression_statement "iVar16 = iVar16 + iVar19;" (assignment_expression "iVar16 = iVar16 + iVar19" identifier = (binary_expression "iVar16 + iVar19" identifier + identifier)) ;) (if_statement "if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" { (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pfVar8 = unaff_s4;" (assignment_expression "pfVar8 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);" do (compound_statement "{\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                }" { (if_statement "if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" if (parenthesized_expression "((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844))))" ( (binary_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))" (parenthesized_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48))" ( (binary_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)" (parenthesized_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34))" ( (binary_expression "(*pfVar8 == fVar43) && (pfVar8[1] == fVar34)" (parenthesized_expression "(*pfVar8 == fVar43)" ( (binary_expression "*pfVar8 == fVar43" (pointer_expression "*pfVar8" * identifier) == identifier) )) && (parenthesized_expression "(pfVar8[1] == fVar34)" ( (binary_expression "pfVar8[1] == fVar34" (subscript_expression "pfVar8[1]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(pfVar8[2] == fVar48)" ( (binary_expression "pfVar8[2] == fVar48" (subscript_expression "pfVar8[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(((char)uVar12 < '\0' || (param_2 == 0x35545844)))" ( (parenthesized_expression "((char)uVar12 < '\0' || (param_2 == 0x35545844))" ( (binary_expression "(char)uVar12 < '\0' || (param_2 == 0x35545844)" (binary_expression "(char)uVar12 < '\0'" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" { (expression_statement "*pfVar18 = (float)pbVar11;" (assignment_expression "*pfVar18 = (float)pbVar11" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)pbVar11" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;" (assignment_expression "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" identifier [ (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (binary_expression "local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" identifier [ (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) + identifier)) ;) (goto_statement "goto LAB_002164d0;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pfVar8 = pfVar8 + 4;" (assignment_expression "pfVar8 = pfVar8 + 4" identifier = (binary_expression "pfVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar11 != unaff_s0)" ( (binary_expression "pbVar11 != unaff_s0" identifier != identifier) )) ;) })) (expression_statement "*pfVar18 = (float)unaff_s0;" (assignment_expression "*pfVar18 = (float)unaff_s0" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)unaff_s0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4] = fVar43;" (assignment_expression "local_2fc[(int)unaff_s0 * 4] = fVar43" (subscript_expression "local_2fc[(int)unaff_s0 * 4]" identifier [ (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 1]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 1" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 2]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 2" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 3]" identifier [ (binary_expression "(int)unaff_s0 * 4 + 3" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_002164d0:\n              pfVar18 = pfVar18 + 1;" statement_identifier : (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" identifier = (binary_expression "pfVar18 + 1" identifier + number_literal)) ;)) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 + local_508._0_4_ != pfVar18)" ( (binary_expression "pfVar22 + local_508._0_4_ != pfVar18" (binary_expression "pfVar22 + local_508._0_4_" identifier + (field_expression "local_508._0_4_" identifier . field_identifier)) != identifier) )) ;) (expression_statement "iVar6 = iVar19 * local_508._0_4_ + iVar6;" (assignment_expression "iVar6 = iVar19 * local_508._0_4_ + iVar6" identifier = (binary_expression "iVar19 * local_508._0_4_ + iVar6" (binary_expression "iVar19 * local_508._0_4_" identifier * (field_expression "local_508._0_4_" identifier . field_identifier)) + identifier)) ;) })) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar26 != local_4e4)" ( (binary_expression "iVar26 != local_4e4" identifier != identifier) )) ;) (if_statement "if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" if (parenthesized_expression "(0 < (int)unaff_s0)" ( (binary_expression "0 < (int)unaff_s0" number_literal < (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" { (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "pfVar18 = local_2fc + 3;" (assignment_expression "pfVar18 = local_2fc + 3" identifier = (binary_expression "local_2fc + 3" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar18 + (int)unaff_s0 * 4;" (assignment_expression "pfVar22 = pfVar18 + (int)unaff_s0 * 4" identifier = (binary_expression "pfVar18 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);" do (compound_statement "{\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          }" { (expression_statement "fVar28 = SQRT(*pfVar18);" (assignment_expression "fVar28 = SQRT(*pfVar18)" identifier = (call_expression "SQRT(*pfVar18)" identifier (argument_list "(*pfVar18)" ( (pointer_expression "*pfVar18" * identifier) )))) ;) (if_statement "if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" if (parenthesized_expression "(*pfVar18 < (float)uVar39)" ( (binary_expression "*pfVar18 < (float)uVar39" (pointer_expression "*pfVar18" * identifier) < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" { (expression_statement "(*(code *)PTR_sqrtf_003a9800)();" (call_expression "(*(code *)PTR_sqrtf_003a9800)()" (parenthesized_expression "(*(code *)PTR_sqrtf_003a9800)" ( (pointer_expression "*(code *)PTR_sqrtf_003a9800" * (cast_expression "(code *)PTR_sqrtf_003a9800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*pfVar18 = fVar28;" (assignment_expression "*pfVar18 = fVar28" (pointer_expression "*pfVar18" * identifier) = identifier) ;) (expression_statement "pfVar18 = pfVar18 + 4;" (assignment_expression "pfVar18 = pfVar18 + 4" identifier = (binary_expression "pfVar18 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 != pfVar18)" ( (binary_expression "pfVar22 != pfVar18" identifier != identifier) )) ;) })) (if_statement "if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" if (parenthesized_expression "(param_2 == 0x35545844)" ( (binary_expression "param_2 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" { (expression_statement "local_508._0_4_ = local_4dc;" (assignment_expression "local_508._0_4_ = local_4dc" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" if (parenthesized_expression "((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5))" ( (binary_expression "(local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" (parenthesized_expression "(local_4dc < uVar20)" ( (binary_expression "local_4dc < uVar20" identifier < identifier) )) || (parenthesized_expression "(local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" ( (comma_expression "local_508._0_4_ = uVar20, local_4dc - uVar20 < 5" (assignment_expression "local_508._0_4_ = uVar20" (field_expression "local_508._0_4_" identifier . field_identifier) = identifier) , (binary_expression "local_4dc - uVar20 < 5" (binary_expression "local_4dc - uVar20" identifier - identifier) < number_literal)) ))) )) (compound_statement "{\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" { (expression_statement "local_4dc = local_508._0_4_ + 5;" (assignment_expression "local_4dc = local_508._0_4_ + 5" identifier = (binary_expression "local_508._0_4_ + 5" (field_expression "local_508._0_4_" identifier . field_identifier) + number_literal)) ;) (if_statement "if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }" if (parenthesized_expression "(0xff < local_4dc)" ( (binary_expression "0xff < local_4dc" number_literal < identifier) )) (compound_statement "{\n              local_4dc = 0xff;\n            }" { (expression_statement "local_4dc = 0xff;" (assignment_expression "local_4dc = 0xff" identifier = number_literal) ;) })) (if_statement "if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }" if (parenthesized_expression "(local_4dc - local_508._0_4_ < 5)" ( (binary_expression "local_4dc - local_508._0_4_ < 5" (binary_expression "local_4dc - local_508._0_4_" identifier - (field_expression "local_508._0_4_" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n              local_508._0_4_ = local_4dc - 5;\n            }" { (expression_statement "local_508._0_4_ = local_4dc - 5;" (assignment_expression "local_508._0_4_ = local_4dc - 5" (field_expression "local_508._0_4_" identifier . field_identifier) = (binary_expression "local_4dc - 5" identifier - number_literal)) ;) })) })) (goto_statement "goto LAB_002176f8;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s3 = unaff_s0;" (assignment_expression "unaff_s3 = unaff_s0" identifier = identifier) ;) (if_statement "if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" if (parenthesized_expression "(unaff_s0 != (byte *)0x1)" ( (binary_expression "unaff_s0 != (byte *)0x1" identifier != (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" { (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" identifier = number_literal) ;) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" identifier = number_literal) ;) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" identifier = number_literal) ;) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" identifier = number_literal) ;) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" identifier = number_literal) ;) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" identifier = number_literal) ;) (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0021703c;" goto statement_identifier ;)) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" identifier = number_literal) ;) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" identifier = number_literal) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);" do (compound_statement "{\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        }" { (expression_statement "fVar29 = pfVar22[3];" (assignment_expression "fVar29 = pfVar22[3]" identifier = (subscript_expression "pfVar22[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar28 = fVar28 + fVar29;" (assignment_expression "fVar28 = fVar28 + fVar29" identifier = (binary_expression "fVar28 + fVar29" identifier + identifier)) ;) (expression_statement "fVar43 = fVar29 * *pfVar22 + fVar43;" (assignment_expression "fVar43 = fVar29 * *pfVar22 + fVar43" identifier = (binary_expression "fVar29 * *pfVar22 + fVar43" (binary_expression "fVar29 * *pfVar22" identifier * (pointer_expression "*pfVar22" * identifier)) + identifier)) ;) (expression_statement "fVar49 = fVar29 * pfVar22[1] + fVar49;" (assignment_expression "fVar49 = fVar29 * pfVar22[1] + fVar49" identifier = (binary_expression "fVar29 * pfVar22[1] + fVar49" (binary_expression "fVar29 * pfVar22[1]" identifier * (subscript_expression "pfVar22[1]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "fVar47 = fVar29 * pfVar22[2] + fVar47;" (assignment_expression "fVar47 = fVar29 * pfVar22[2] + fVar47" identifier = (binary_expression "fVar29 * pfVar22[2] + fVar47" (binary_expression "fVar29 * pfVar22[2]" identifier * (subscript_expression "pfVar22[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 != pfVar18)" ( (binary_expression "unaff_s4 + (int)unaff_s0 * 4 != pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (if_statement "if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" if (parenthesized_expression "(*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28)" ( (binary_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28" (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e58)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e58)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e58" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" { (expression_statement "fVar43 = fVar43 / fVar28;" (assignment_expression "fVar43 = fVar43 / fVar28" identifier = (binary_expression "fVar43 / fVar28" identifier / identifier)) ;) (expression_statement "fVar49 = fVar49 / fVar28;" (assignment_expression "fVar49 = fVar49 / fVar28" identifier = (binary_expression "fVar49 / fVar28" identifier / identifier)) ;) (expression_statement "fVar47 = fVar47 / fVar28;" (assignment_expression "fVar47 = fVar47 / fVar28" identifier = (binary_expression "fVar47 / fVar28" identifier / identifier)) ;) })) (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" identifier = number_literal) ;) (expression_statement "fVar44 = 0.0;" (assignment_expression "fVar44 = 0.0" identifier = number_literal) ;) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" identifier = number_literal) ;) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" identifier = number_literal) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );" do (compound_statement "{\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        }" { (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar32 = *pfVar22 - fVar43;" (assignment_expression "fVar32 = *pfVar22 - fVar43" identifier = (binary_expression "*pfVar22 - fVar43" (pointer_expression "*pfVar22" * identifier) - identifier)) ;) (expression_statement "fVar30 = pfVar22[3];" (assignment_expression "fVar30 = pfVar22[3]" identifier = (subscript_expression "pfVar22[3]" identifier [ number_literal ])) ;) (expression_statement "fVar33 = pfVar22[1] - fVar49;" (assignment_expression "fVar33 = pfVar22[1] - fVar49" identifier = (binary_expression "pfVar22[1] - fVar49" (subscript_expression "pfVar22[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "fVar31 = (pfVar22[2] - fVar47) * fVar30;" (assignment_expression "fVar31 = (pfVar22[2] - fVar47) * fVar30" identifier = (binary_expression "(pfVar22[2] - fVar47) * fVar30" (parenthesized_expression "(pfVar22[2] - fVar47)" ( (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" identifier [ number_literal ]) - identifier) )) * identifier)) ;) (expression_statement "fVar29 = fVar32 * fVar30 * fVar32 + fVar29;" (assignment_expression "fVar29 = fVar32 * fVar30 * fVar32 + fVar29" identifier = (binary_expression "fVar32 * fVar30 * fVar32 + fVar29" (binary_expression "fVar32 * fVar30 * fVar32" (binary_expression "fVar32 * fVar30" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar34 = fVar32 * fVar33 * fVar30 + fVar34;" (assignment_expression "fVar34 = fVar32 * fVar33 * fVar30 + fVar34" identifier = (binary_expression "fVar32 * fVar33 * fVar30 + fVar34" (binary_expression "fVar32 * fVar33 * fVar30" (binary_expression "fVar32 * fVar33" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar28 = fVar32 * fVar31 + fVar28;" (assignment_expression "fVar28 = fVar32 * fVar31 + fVar28" identifier = (binary_expression "fVar32 * fVar31 + fVar28" (binary_expression "fVar32 * fVar31" identifier * identifier) + identifier)) ;) (expression_statement "fVar48 = fVar33 * fVar33 * fVar30 + fVar48;" (assignment_expression "fVar48 = fVar33 * fVar33 * fVar30 + fVar48" identifier = (binary_expression "fVar33 * fVar33 * fVar30 + fVar48" (binary_expression "fVar33 * fVar33 * fVar30" (binary_expression "fVar33 * fVar33" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar44 = fVar33 * fVar31 + fVar44;" (assignment_expression "fVar44 = fVar33 * fVar31 + fVar44" identifier = (binary_expression "fVar33 * fVar31 + fVar44" (binary_expression "fVar33 * fVar31" identifier * identifier) + identifier)) ;) (expression_statement "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;" (assignment_expression "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46" identifier = (binary_expression "(pfVar22[2] - fVar47) * fVar31 + fVar46" (binary_expression "(pfVar22[2] - fVar47) * fVar31" (parenthesized_expression "(pfVar22[2] - fVar47)" ( (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" identifier [ number_literal ]) - identifier) )) * identifier) + identifier)) ;) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" identifier = identifier) ;) (if_statement "if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;" if (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 == pfVar18)" ( (binary_expression "unaff_s4 + (int)unaff_s0 * 4 == pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" identifier + (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) == identifier) )) (goto_statement "goto LAB_0021663c;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" identifier + number_literal) ))))) ;) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);" (assignment_expression "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[1] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[1] * fVar49 + fVar47)" ( (binary_expression "local_2fc[1] * fVar49 + fVar47" (binary_expression "local_2fc[1] * fVar49" (subscript_expression "local_2fc[1]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (expression_statement "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);" (assignment_expression "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[2] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[2] * fVar49 + fVar47)" ( (binary_expression "local_2fc[2] * fVar49 + fVar47" (binary_expression "local_2fc[2] * fVar49" (subscript_expression "local_2fc[2]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (expression_statement "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);" (assignment_expression "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47)" identifier = (call_expression "(uint)(local_2fc[0] * fVar49 + fVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2fc[0] * fVar49 + fVar47)" ( (binary_expression "local_2fc[0] * fVar49 + fVar47" (binary_expression "local_2fc[0] * fVar49" (subscript_expression "local_2fc[0]" identifier [ number_literal ]) * identifier) + identifier) )))) ;) (if_statement "if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar12)" ( (binary_expression "0xff < uVar12" number_literal < identifier) )) (compound_statement "{\n        uVar12 = 0xff;\n      }" { (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar20)" ( (binary_expression "0xff < uVar20" number_literal < identifier) )) (compound_statement "{\n        uVar20 = 0xff;\n      }" { (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) })) (if_statement "if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }" if (parenthesized_expression "(0xff < uVar23)" ( (binary_expression "0xff < uVar23" number_literal < identifier) )) (compound_statement "{\n        uVar23 = 0xff;\n      }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_fc[2] = (char)uVar20;" (assignment_expression "local_fc[2] = (char)uVar20" (subscript_expression "local_fc[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_fc[1] = (char)uVar12;" (assignment_expression "local_fc[1] = (char)uVar12" (subscript_expression "local_fc[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_fc[0] = (byte)uVar23;" (assignment_expression "local_fc[0] = (byte)uVar23" (subscript_expression "local_fc[0]" identifier [ number_literal ]) = (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" { (expression_statement "iVar16 = iVar26 * 3;" (assignment_expression "iVar16 = iVar26 * 3" identifier = (binary_expression "iVar26 * 3" identifier * number_literal)) ;) (expression_statement "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78cc)" ( (binary_expression "PTR_DAT_003a88cc + -0x78cc" identifier + number_literal) )))) + (binary_expression "(uVar12 & 0xff) * 6" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78c8)" ( (binary_expression "PTR_DAT_003a88cc + -0x78c8" identifier + number_literal) )))) + (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" ( (binary_expression "uVar20 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" identifier = (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" ( (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0)" * (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003a88cc + -0x78d0)" ( (binary_expression "PTR_DAT_003a88cc + -0x78d0" identifier + number_literal) )))) + (binary_expression "(uVar23 & 0xff) * 6" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];" (assignment_expression "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" identifier = (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2]" (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[2]" identifier [ number_literal ]))) + (binary_expression "(uint)pbVar10[2] * (uint)pbVar10[2]" (cast_expression "(uint)pbVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])))) + (binary_expression "(uint)pbVar11[2] * (uint)pbVar11[2]" (cast_expression "(uint)pbVar11[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar11[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ]))))) ;) (if_statement "if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" if (parenthesized_expression "(uVar52 <= uVar5)" ( (binary_expression "uVar52 <= uVar5" identifier <= identifier) )) (compound_statement "{\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" { (expression_statement "local_3d8 = (float)*pbVar11 / fVar28;" (assignment_expression "local_3d8 = (float)*pbVar11 / fVar28" identifier = (binary_expression "(float)*pbVar11 / fVar28" (cast_expression "(float)*pbVar11" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) / identifier)) ;) (expression_statement "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier = (binary_expression "(float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)*pbVar24" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar24" * identifier)) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) )))))) ;) (expression_statement "local_3d0 = (float)*pbVar10 / fVar28;" (assignment_expression "local_3d0 = (float)*pbVar10 / fVar28" identifier = (binary_expression "(float)*pbVar10 / fVar28" (cast_expression "(float)*pbVar10" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar10" * identifier)) / identifier)) ;) (expression_statement "local_3c8 = (byte *)((float)pbVar11[1] / fVar28);" (assignment_expression "local_3c8 = (byte *)((float)pbVar11[1] / fVar28)" identifier = (cast_expression "(byte *)((float)pbVar11[1] / fVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar11[1] / fVar28)" ( (binary_expression "(float)pbVar11[1] / fVar28" (cast_expression "(float)pbVar11[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar11[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));" (assignment_expression "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" identifier = (cast_expression "(undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" ( (binary_expression "(float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)pbVar24[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) )))) ;) (expression_statement "local_3c0 = (float *)((float)pbVar10[1] / fVar28);" (assignment_expression "local_3c0 = (float *)((float)pbVar10[1] / fVar28)" identifier = (cast_expression "(float *)((float)pbVar10[1] / fVar28)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar10[1] / fVar28)" ( (binary_expression "(float)pbVar10[1] / fVar28" (cast_expression "(float)pbVar10[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "iVar6 = iVar26 * 2;" (assignment_expression "iVar6 = iVar26 * 2" identifier = (binary_expression "iVar26 * 2" identifier * number_literal)) ;) (expression_statement "uVar5 = uVar52;" (assignment_expression "uVar5 = uVar52" identifier = identifier) ;) })) (if_statement "if (iVar26 == 1) break;" if (parenthesized_expression "(iVar26 == 1)" ( (binary_expression "iVar26 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) })) (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" identifier = identifier) ;) (do_statement "do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);" do (compound_statement "{\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      }" { (expression_statement "*pbVar11 = (byte)iVar6;" (assignment_expression "*pbVar11 = (byte)iVar6" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)iVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" identifier = identifier) ;) }) while (parenthesized_expression "(local_dc != pbVar11)" ( (binary_expression "local_dc != pbVar11" identifier != identifier) )) ;) (do_statement "do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);" do (compound_statement "{\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      }" { (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" while (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" ( (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" identifier = identifier) , (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" * identifier) != (unary_expression "-NAN" - identifier))) )) (compound_statement "{\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" { (expression_statement "*pbVar10 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar10 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar10" * identifier) = (subscript_expression "local_ec[(int)*pfVar21]" identifier [ (cast_expression "(int)*pfVar21" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) ])) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;" if (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" ( (binary_expression "unaff_s1 == pfVar21 + 1" identifier == (binary_expression "pfVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00216f04;" goto statement_identifier ;)) })) (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" ( (binary_expression "unaff_s1 != pfVar21 + 1" identifier != (binary_expression "pfVar21 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_00216f04:\n      unaff_s2 = pfVar21 + 1;" statement_identifier : (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;)) (expression_statement "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);" (call_expression "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" identifier (argument_list "(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (while_statement "while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" { (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = local_4cc;" (assignment_expression "uVar23 = local_4cc" identifier = identifier) ;) (if_statement "if ((int)local_4cc < (int)local_508._0_4_) break;" if (parenthesized_expression "((int)local_4cc < (int)local_508._0_4_)" ( (binary_expression "(int)local_4cc < (int)local_508._0_4_" (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_508._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_508._0_4_" identifier . field_identifier))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00216b38:\n        local_4d0 = local_4c8;" statement_identifier : (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;)) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;" if (parenthesized_expression "((int)local_4c8 < (int)uVar5)" ( (binary_expression "(int)local_4c8 < (int)uVar5" (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216150;" goto statement_identifier ;)) (labeled_statement "LAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }" statement_identifier : (if_statement "if (local_5c == *(int *)puVar4) {\n          return;\n        }" if (parenthesized_expression "(local_5c == *(int *)puVar4)" ( (binary_expression "local_5c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021703c:\n        fVar46 = 0.0;" statement_identifier : (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" identifier = number_literal) ;)) (expression_statement "param_2 = unaff_s6;" (assignment_expression "param_2 = unaff_s6" identifier = identifier) ;) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" identifier = identifier) ;) (expression_statement "fVar28 = fVar46;" (assignment_expression "fVar28 = fVar46" identifier = identifier) ;) (expression_statement "fVar29 = fVar46;" (assignment_expression "fVar29 = fVar46" identifier = identifier) ;) (expression_statement "fVar34 = fVar46;" (assignment_expression "fVar34 = fVar46" identifier = identifier) ;) (expression_statement "fVar48 = fVar46;" (assignment_expression "fVar48 = fVar46" identifier = identifier) ;) (expression_statement "fVar44 = fVar46;" (assignment_expression "fVar44 = fVar46" identifier = identifier) ;) (labeled_statement "LAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" statement_identifier : (expression_statement "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;)) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" identifier = identifier) ;) (expression_statement "fVar49 = fVar43;" (assignment_expression "fVar49 = fVar43" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);" do (compound_statement "{\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        }" { (while_statement "while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" { (expression_statement "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;" (assignment_expression "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" identifier = (binary_expression "fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" (binary_expression "fVar44 * fVar43 + fVar34 * fVar49" (binary_expression "fVar44 * fVar43" identifier * identifier) + (binary_expression "fVar34 * fVar49" identifier * identifier)) + (binary_expression "fVar48 * fVar47" identifier * identifier))) ;) (expression_statement "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;" (assignment_expression "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" identifier = (binary_expression "fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" (binary_expression "fVar46 * fVar43 + fVar28 * fVar49" (binary_expression "fVar46 * fVar43" identifier * identifier) + (binary_expression "fVar28 * fVar49" identifier * identifier)) + (binary_expression "fVar44 * fVar47" identifier * identifier))) ;) (expression_statement "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;" (assignment_expression "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" identifier = (binary_expression "fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" (binary_expression "fVar28 * fVar43 + fVar29 * fVar49" (binary_expression "fVar28 * fVar43" identifier * identifier) + (binary_expression "fVar29 * fVar49" identifier * identifier)) + (binary_expression "fVar34 * fVar47" identifier * identifier))) ;) (if_statement "if (fVar30 <= fVar31) break;" if (parenthesized_expression "(fVar30 <= fVar31)" ( (binary_expression "fVar30 <= fVar31" identifier <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar49 <= fVar30) goto LAB_0021668c;" if (parenthesized_expression "(fVar49 <= fVar30)" ( (binary_expression "fVar49 <= fVar30" identifier <= identifier) )) (goto_statement "goto LAB_0021668c;" goto statement_identifier ;)) (labeled_statement "LAB_00216720:\n            local_508 = (double)fVar49;" statement_identifier : (expression_statement "local_508 = (double)fVar49;" (assignment_expression "local_508 = (double)fVar49" identifier = (cast_expression "(double)fVar49" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (fVar49 < 0.0) goto LAB_00216730;" if (parenthesized_expression "(fVar49 < 0.0)" ( (binary_expression "fVar49 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00216730;" goto statement_identifier ;)) (labeled_statement "LAB_002166ac:\n            dVar36 = dVar51;" statement_identifier : (expression_statement "dVar36 = dVar51;" (assignment_expression "dVar36 = dVar51" identifier = identifier) ;)) (if_statement "if (dVar50 <= local_508) goto LAB_002166c4;" if (parenthesized_expression "(dVar50 <= local_508)" ( (binary_expression "dVar50 <= local_508" identifier <= identifier) )) (goto_statement "goto LAB_002166c4;" goto statement_identifier ;)) (labeled_statement "LAB_00216758:\n            iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar43 = (float)(dVar36 / dVar50);" (assignment_expression "fVar43 = (float)(dVar36 / dVar50)" identifier = (cast_expression "(float)(dVar36 / dVar50)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar36 / dVar50)" ( (binary_expression "dVar36 / dVar50" identifier / identifier) )))) ;) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" identifier = (binary_expression "fVar49 * fVar43" identifier * identifier)) ;) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" identifier = (binary_expression "fVar30 * fVar43" identifier * identifier)) ;) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" identifier = (binary_expression "fVar31 * fVar43" identifier * identifier)) ;) (if_statement "if (iVar6 == 0) goto LAB_00216774;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00216774;" goto statement_identifier ;)) })) (if_statement "if (fVar31 < fVar49) goto LAB_00216720;" if (parenthesized_expression "(fVar31 < fVar49)" ( (binary_expression "fVar31 < fVar49" identifier < identifier) )) (goto_statement "goto LAB_00216720;" goto statement_identifier ;)) (labeled_statement "LAB_0021668c:\n          fVar47 = fVar30;" statement_identifier : (expression_statement "fVar47 = fVar30;" (assignment_expression "fVar47 = fVar30" identifier = identifier) ;)) (if_statement "if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }" if (parenthesized_expression "(fVar30 <= fVar31)" ( (binary_expression "fVar30 <= fVar31" identifier <= identifier) )) (compound_statement "{\n            fVar47 = fVar31;\n          }" { (expression_statement "fVar47 = fVar31;" (assignment_expression "fVar47 = fVar31" identifier = identifier) ;) })) (expression_statement "local_508 = (double)fVar47;" (assignment_expression "local_508 = (double)fVar47" identifier = (cast_expression "(double)fVar47" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (0.0 <= fVar47) goto LAB_002166ac;" if (parenthesized_expression "(0.0 <= fVar47)" ( (binary_expression "0.0 <= fVar47" number_literal <= identifier) )) (goto_statement "goto LAB_002166ac;" goto statement_identifier ;)) (labeled_statement "LAB_00216730:\n          local_4f0 = -local_508;" statement_identifier : (expression_statement "local_4f0 = -local_508;" (assignment_expression "local_4f0 = -local_508" identifier = (unary_expression "-local_508" - identifier)) ;)) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a78" identifier + number_literal) ))))) ;) (if_statement "if (local_4f0 < dVar50) goto LAB_00216758;" if (parenthesized_expression "(local_4f0 < dVar50)" ( (binary_expression "local_4f0 < dVar50" identifier < identifier) )) (goto_statement "goto LAB_00216758;" goto statement_identifier ;)) (labeled_statement "LAB_002166c4:\n          iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (expression_statement "fVar43 = (float)(dVar51 / local_508);" (assignment_expression "fVar43 = (float)(dVar51 / local_508)" identifier = (cast_expression "(float)(dVar51 / local_508)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar51 / local_508)" ( (binary_expression "dVar51 / local_508" identifier / identifier) )))) ;) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" identifier = (binary_expression "fVar49 * fVar43" identifier * identifier)) ;) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" identifier = (binary_expression "fVar30 * fVar43" identifier * identifier)) ;) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" identifier = (binary_expression "fVar31 * fVar43" identifier * identifier)) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar51 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar51 >> 0x20)" ( (binary_expression "(ulonglong)dVar51 >> 0x20" (cast_expression "(ulonglong)dVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (if_statement "if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }" { (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_00216788;" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00216788;" goto statement_identifier ;)) (expression_statement "local_478 = local_2fc[1];" (assignment_expression "local_478 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "local_47c = local_2fc[0];" (assignment_expression "local_47c = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "local_474 = local_2fc[2];" (assignment_expression "local_474 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "local_488 = local_2fc[0];" (assignment_expression "local_488 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "local_484 = local_2fc[1];" (assignment_expression "local_484 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "local_480 = local_2fc[2];" (assignment_expression "local_480 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];" (assignment_expression "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" identifier = (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0]" (binary_expression "fVar43 * local_2fc[2]" identifier * (subscript_expression "local_2fc[2]" identifier [ number_literal ])) + (binary_expression "fVar49 * local_2fc[0]" identifier * (subscript_expression "local_2fc[0]" identifier [ number_literal ]))) + (binary_expression "fVar47 * local_2fc[1]" identifier * (subscript_expression "local_2fc[1]" identifier [ number_literal ])))) ;) (if_statement "if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" if (parenthesized_expression "((int)unaff_s3 < 2)" ( (binary_expression "(int)unaff_s3 < 2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" { (if_statement "if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" if (parenthesized_expression "(0.0 <= local_2fc[0])" ( (binary_expression "0.0 <= local_2fc[0]" number_literal <= (subscript_expression "local_2fc[0]" identifier [ number_literal ])) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002179a0;" goto statement_identifier ;) })) (labeled_statement "LAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;)) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" if (parenthesized_expression "(0.0 <= local_478)" ( (binary_expression "0.0 <= local_478" number_literal <= identifier) )) (compound_statement "{\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" { (labeled_statement "LAB_002179c0:\n              fVar29 = local_474;" statement_identifier : (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;)) (expression_statement "fVar34 = local_478;" (assignment_expression "fVar34 = local_478" identifier = identifier) ;) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" identifier = identifier) ;) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" identifier = identifier) ;) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" identifier = identifier) ;) (if_statement "if (local_478 <= fVar28) goto LAB_002167a4;" if (parenthesized_expression "(local_478 <= fVar28)" ( (binary_expression "local_478 <= fVar28" identifier <= identifier) )) (goto_statement "goto LAB_002167a4;" goto statement_identifier ;)) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002167b4;" goto statement_identifier ;) })) }) (else_clause "else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" else (compound_statement "{\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" { (expression_statement "pfVar22 = local_2fc + 4;" (assignment_expression "pfVar22 = local_2fc + 4" identifier = (binary_expression "local_2fc + 4" identifier + number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "fVar29 = local_2fc[0];" (assignment_expression "fVar29 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "fVar34 = fVar28;" (assignment_expression "fVar34 = fVar28" identifier = identifier) ;) (expression_statement "fVar48 = local_2fc[2];" (assignment_expression "fVar48 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar44 = local_2fc[1];" (assignment_expression "fVar44 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (expression_statement "fVar46 = local_2fc[2];" (assignment_expression "fVar46 = local_2fc[2]" identifier = (subscript_expression "local_2fc[2]" identifier [ number_literal ])) ;) (expression_statement "fVar30 = local_2fc[0];" (assignment_expression "fVar30 = local_2fc[0]" identifier = (subscript_expression "local_2fc[0]" identifier [ number_literal ])) ;) (expression_statement "fVar31 = local_2fc[1];" (assignment_expression "fVar31 = local_2fc[1]" identifier = (subscript_expression "local_2fc[1]" identifier [ number_literal ])) ;) (do_statement "do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);" do (compound_statement "{\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            }" { (while_statement "while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" { (expression_statement "fVar41 = pfVar22[1];" (assignment_expression "fVar41 = pfVar22[1]" identifier = (subscript_expression "pfVar22[1]" identifier [ number_literal ])) ;) (expression_statement "fVar33 = *pfVar22;" (assignment_expression "fVar33 = *pfVar22" identifier = (pointer_expression "*pfVar22" * identifier)) ;) (expression_statement "fVar32 = pfVar22[2];" (assignment_expression "fVar32 = pfVar22[2]" identifier = (subscript_expression "pfVar22[2]" identifier [ number_literal ])) ;) (expression_statement "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;" (assignment_expression "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" identifier = (binary_expression "fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" (binary_expression "fVar43 * fVar32 + fVar49 * fVar33" (binary_expression "fVar43 * fVar32" identifier * identifier) + (binary_expression "fVar49 * fVar33" identifier * identifier)) + (binary_expression "fVar47 * fVar41" identifier * identifier))) ;) (if_statement "if (fVar35 < fVar34) break;" if (parenthesized_expression "(fVar35 < fVar34)" ( (binary_expression "fVar35 < fVar34" identifier < identifier) )) (break_statement "break;" break ;)) (if_statement "if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" if (parenthesized_expression "(fVar28 < fVar35)" ( (binary_expression "fVar28 < fVar35" identifier < identifier) )) (compound_statement "{\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (expression_statement "fVar29 = fVar33;" (assignment_expression "fVar29 = fVar33" identifier = identifier) ;) (expression_statement "fVar48 = fVar32;" (assignment_expression "fVar48 = fVar32" identifier = identifier) ;) (expression_statement "fVar44 = fVar41;" (assignment_expression "fVar44 = fVar41" identifier = identifier) ;) (expression_statement "fVar28 = fVar35;" (assignment_expression "fVar28 = fVar35" identifier = identifier) ;) })) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "fVar32 = fVar46;" (assignment_expression "fVar32 = fVar46" identifier = identifier) ;) (expression_statement "fVar33 = fVar30;" (assignment_expression "fVar33 = fVar30" identifier = identifier) ;) (expression_statement "fVar41 = fVar31;" (assignment_expression "fVar41 = fVar31" identifier = identifier) ;) (if_statement "if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;" if (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 == pfVar22)" ( (binary_expression "pfVar21 + (int)unaff_s3 * 4 == pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) == identifier) )) (goto_statement "goto LAB_00217194;" goto statement_identifier ;)) })) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" identifier = (binary_expression "pfVar22 + 4" identifier + number_literal)) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "fVar34 = fVar35;" (assignment_expression "fVar34 = fVar35" identifier = identifier) ;) (expression_statement "fVar46 = fVar32;" (assignment_expression "fVar46 = fVar32" identifier = identifier) ;) (expression_statement "fVar30 = fVar33;" (assignment_expression "fVar30 = fVar33" identifier = identifier) ;) (expression_statement "fVar31 = fVar41;" (assignment_expression "fVar31 = fVar41" identifier = identifier) ;) }) while (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 != pfVar22)" ( (binary_expression "pfVar21 + (int)unaff_s3 * 4 != pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (labeled_statement "LAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" statement_identifier : (if_statement "if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" { (expression_statement "local_47c = fVar33;" (assignment_expression "local_47c = fVar33" identifier = identifier) ;) (expression_statement "local_478 = fVar41;" (assignment_expression "local_478 = fVar41" identifier = identifier) ;) (expression_statement "local_474 = fVar32;" (assignment_expression "local_474 = fVar32" identifier = identifier) ;) }))) (if_statement "if (bVar17) {\n              local_488 = fVar29;\n            }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\n              local_488 = fVar29;\n            }" { (expression_statement "local_488 = fVar29;" (assignment_expression "local_488 = fVar29" identifier = identifier) ;) })) (if_statement "if (bVar15) {\n              local_484 = fVar44;\n            }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n              local_484 = fVar44;\n            }" { (expression_statement "local_484 = fVar44;" (assignment_expression "local_484 = fVar44" identifier = identifier) ;) })) (if_statement "if (bVar2) {\n              local_480 = fVar48;\n            }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n              local_480 = fVar48;\n            }" { (expression_statement "local_480 = fVar48;" (assignment_expression "local_480 = fVar48" identifier = identifier) ;) })) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (local_47c < 0.0) goto LAB_002171e0;" if (parenthesized_expression "(local_47c < 0.0)" ( (binary_expression "local_47c < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_002171e0;" goto statement_identifier ;)) (labeled_statement "LAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" statement_identifier : (if_statement "if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" if (parenthesized_expression "(local_47c <= fVar28)" ( (binary_expression "local_47c <= fVar28" identifier <= identifier) )) (compound_statement "{\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" { (expression_statement "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (goto_statement "goto LAB_002171e8;" goto statement_identifier ;) }))) (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (if_statement "if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" if (parenthesized_expression "(0.0 <= local_478)" ( (binary_expression "0.0 <= local_478" number_literal <= identifier) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002179c0;" goto statement_identifier ;) })) }))) (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" identifier = identifier) ;) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" identifier = identifier) ;) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" identifier = identifier) ;) (if_statement "if (0.0 <= local_474) goto LAB_002167c4;" if (parenthesized_expression "(0.0 <= local_474)" ( (binary_expression "0.0 <= local_474" number_literal <= identifier) )) (goto_statement "goto LAB_002167c4;" goto statement_identifier ;)) (labeled_statement "LAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00217224;" if (parenthesized_expression "((float)uVar39 <= 0.0)" ( (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00217224;" goto statement_identifier ;)) (labeled_statement "LAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" statement_identifier : (if_statement "if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" if (parenthesized_expression "(fVar28 <= 0.0)" ( (binary_expression "fVar28 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" else (compound_statement "{\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" { (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) })))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar29);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar29)" identifier = (call_expression "CONCAT44(uVar37,fVar29)" identifier (argument_list "(uVar37,fVar29)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" if (parenthesized_expression "(0.0 < fVar29)" ( (binary_expression "0.0 < fVar29" number_literal < identifier) )) (compound_statement "{\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }" { (expression_statement "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= fVar47) goto LAB_00216890;" if (parenthesized_expression "(0.0 <= fVar47)" ( (binary_expression "0.0 <= fVar47" number_literal <= identifier) )) (goto_statement "goto LAB_00216890;" goto statement_identifier ;)) (labeled_statement "LAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (labeled_statement "LAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" statement_identifier : (if_statement "if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" if (parenthesized_expression "(0.0 <= fVar49)" ( (binary_expression "0.0 <= fVar49" number_literal <= identifier) )) (compound_statement "{\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" { (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168bc;" goto statement_identifier ;) }))) (labeled_statement "LAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" statement_identifier : (if_statement "if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" if (parenthesized_expression "(0.0 <= fVar43)" ( (binary_expression "0.0 <= fVar43" number_literal <= identifier) )) (compound_statement "{\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" { (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168e4;" goto statement_identifier ;) }))) (labeled_statement "LAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;)) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00216f7c;" if (parenthesized_expression "((float)uVar39 <= 0.0)" ( (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier) <= number_literal) )) (goto_statement "goto LAB_00216f7c;" goto statement_identifier ;)) (labeled_statement "LAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" identifier = identifier) ;) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" identifier = identifier) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (if_statement "if (0.0 < fVar28) goto LAB_00216938;" if (parenthesized_expression "(0.0 < fVar28)" ( (binary_expression "0.0 < fVar28" number_literal < identifier) )) (goto_statement "goto LAB_00216938;" goto statement_identifier ;)) (labeled_statement "LAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" statement_identifier : (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39)" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)(uVar39)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)(uVar39)" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar39)" ( identifier ))))) ;)) (if_statement "if (fVar47 <= 0.0) goto LAB_00216fc8;" if (parenthesized_expression "(fVar47 <= 0.0)" ( (binary_expression "fVar47 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fc8;" goto statement_identifier ;)) (labeled_statement "LAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" statement_identifier : (expression_statement "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" (assignment_expression "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47)" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(fVar47)" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)(fVar47)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fVar47)" ( identifier ))))) ;)) }) (else_clause "else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" else (compound_statement "{\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" { (expression_statement "local_474 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_474 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) )))))) ;) (if_statement "if (fVar47 < 0.0) goto LAB_002170a0;" if (parenthesized_expression "(fVar47 < 0.0)" ( (binary_expression "fVar47 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_002170a0;" goto statement_identifier ;)) (labeled_statement "LAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" statement_identifier : (if_statement "if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" if (parenthesized_expression "(*(float *)(puVar9 + -0x5a8c) < fVar47)" ( (binary_expression "*(float *)(puVar9 + -0x5a8c) < fVar47" (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" { (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_002168a8;" goto statement_identifier ;) }))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) )))) ;) (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (fVar49 < 0.0) goto LAB_00217004;" if (parenthesized_expression "(fVar49 < 0.0)" ( (binary_expression "fVar49 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00217004;" goto statement_identifier ;)) (labeled_statement "LAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" statement_identifier : (if_statement "if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" if (parenthesized_expression "(fVar28 < fVar49)" ( (binary_expression "fVar28 < fVar49" identifier < identifier) )) (compound_statement "{\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" { (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e64" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002168d0;" goto statement_identifier ;) }))) (expression_statement "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" identifier = (pointer_expression "*(float *)(puVar9 + -0x5a8c)" * (cast_expression "(float *)(puVar9 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x5a8c)" ( (binary_expression "puVar9 + -0x5a8c" identifier + number_literal) ))))) ;) (if_statement "if (fVar43 < 0.0) goto LAB_00216f6c;" if (parenthesized_expression "(fVar43 < 0.0)" ( (binary_expression "fVar43 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_00216f6c;" goto statement_identifier ;)) (labeled_statement "LAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(fVar43 <= fVar47)" ( (binary_expression "fVar43 <= fVar47" identifier <= identifier) )) (compound_statement "{\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if (0.0 < (float)uVar39) goto LAB_00216910;" if (parenthesized_expression "(0.0 < (float)uVar39)" ( (binary_expression "0.0 < (float)uVar39" number_literal < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216910;" goto statement_identifier ;)) (labeled_statement "LAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;" statement_identifier : (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" identifier = identifier) ;)) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" identifier = identifier) ;) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" identifier = identifier) ;) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" identifier = identifier) ;) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (if_statement "if (fVar28 <= 0.0) goto LAB_00216fa0;" if (parenthesized_expression "(fVar28 <= 0.0)" ( (binary_expression "fVar28 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00216fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" statement_identifier : (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)()" identifier = (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" ( (pointer_expression "*(code *)PTR_floorf_003a94a0" * (cast_expression "(code *)PTR_floorf_003a94a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (if_statement "if (0.0 < fVar47) goto LAB_00216960;" if (parenthesized_expression "(0.0 < fVar47)" ( (binary_expression "0.0 < fVar47" number_literal < identifier) )) (goto_statement "goto LAB_00216960;" goto statement_identifier ;)) (labeled_statement "LAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" statement_identifier : (expression_statement "local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_480 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) }))) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e4c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e4c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e4c" identifier + number_literal) ))))) ;) (expression_statement "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54)" identifier = (binary_expression "fVar34 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e48)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e48)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e48" identifier + number_literal) ))))) ;) (expression_statement "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);" (assignment_expression "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50)" identifier = (binary_expression "fVar28 * *(float *)(unaff_s0 + -0x1e50)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e50)" * (cast_expression "(float *)(unaff_s0 + -0x1e50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e50)" ( (binary_expression "unaff_s0 + -0x1e50" identifier + number_literal) )))))) ;) (expression_statement "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54)" identifier = (binary_expression "local_480 * *(float *)(unaff_s0 + -0x1e54)" identifier * (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" * (cast_expression "(float *)(unaff_s0 + -0x1e54)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + -0x1e54)" ( (binary_expression "unaff_s0 + -0x1e54" identifier + number_literal) )))))) ;) (expression_statement "local_1fc = local_47c;" (assignment_expression "local_1fc = local_47c" identifier = identifier) ;) (expression_statement "local_1f8 = local_478;" (assignment_expression "local_1f8 = local_478" identifier = identifier) ;) (expression_statement "local_1f4 = local_474;" (assignment_expression "local_1f4 = local_474" identifier = identifier) ;) (expression_statement "local_1f0 = local_488;" (assignment_expression "local_1f0 = local_488" identifier = identifier) ;) (expression_statement "local_1ec = local_484;" (assignment_expression "local_1ec = local_484" identifier = identifier) ;) (expression_statement "local_1e8 = local_480;" (assignment_expression "local_1e8 = local_480" identifier = identifier) ;) (expression_statement "local_1e4 = fVar49 * fVar47 + local_488 * fVar34;" (assignment_expression "local_1e4 = fVar49 * fVar47 + local_488 * fVar34" identifier = (binary_expression "fVar49 * fVar47 + local_488 * fVar34" (binary_expression "fVar49 * fVar47" identifier * identifier) + (binary_expression "local_488 * fVar34" identifier * identifier))) ;) (expression_statement "local_1e0 = fVar43 * fVar47 + local_484 * fVar34;" (assignment_expression "local_1e0 = fVar43 * fVar47 + local_484 * fVar34" identifier = (binary_expression "fVar43 * fVar47 + local_484 * fVar34" (binary_expression "fVar43 * fVar47" identifier * identifier) + (binary_expression "local_484 * fVar34" identifier * identifier))) ;) (expression_statement "local_1d8 = fVar49 * fVar34 + local_488 * fVar47;" (assignment_expression "local_1d8 = fVar49 * fVar34 + local_488 * fVar47" identifier = (binary_expression "fVar49 * fVar34 + local_488 * fVar47" (binary_expression "fVar49 * fVar34" identifier * identifier) + (binary_expression "local_488 * fVar47" identifier * identifier))) ;) (expression_statement "local_1dc = fVar29 * fVar47 + local_480 * fVar34;" (assignment_expression "local_1dc = fVar29 * fVar47 + local_480 * fVar34" identifier = (binary_expression "fVar29 * fVar47 + local_480 * fVar34" (binary_expression "fVar29 * fVar47" identifier * identifier) + (binary_expression "local_480 * fVar34" identifier * identifier))) ;) (expression_statement "local_1d4 = fVar43 * fVar34 + local_484 * fVar47;" (assignment_expression "local_1d4 = fVar43 * fVar34 + local_484 * fVar47" identifier = (binary_expression "fVar43 * fVar34 + local_484 * fVar47" (binary_expression "fVar43 * fVar34" identifier * identifier) + (binary_expression "local_484 * fVar47" identifier * identifier))) ;) (expression_statement "local_1d0 = fVar29 * fVar34 + local_480 * fVar47;" (assignment_expression "local_1d0 = fVar29 * fVar34 + local_480 * fVar47" identifier = (binary_expression "fVar29 * fVar34 + local_480 * fVar47" (binary_expression "fVar29 * fVar34" identifier * identifier) + (binary_expression "local_480 * fVar47" identifier * identifier))) ;) (if_statement "if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" if (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" { (expression_statement "pbVar11 = local_dc;" (assignment_expression "pbVar11 = local_dc" identifier = identifier) ;) (expression_statement "unaff_s3 = unaff_s3 + (int)pbVar11;" (assignment_expression "unaff_s3 = unaff_s3 + (int)pbVar11" identifier = (binary_expression "unaff_s3 + (int)pbVar11" identifier + (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e60)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e60)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e60" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);" do (compound_statement "{\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "pfVar22 = &local_1fc;" (assignment_expression "pfVar22 = &local_1fc" identifier = (pointer_expression "&local_1fc" & identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "fVar47 = fVar28;" (assignment_expression "fVar47 = fVar28" identifier = identifier) ;) (do_statement "do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);" do (compound_statement "{\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              }" { (expression_statement "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);" (assignment_expression "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" identifier = (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2])" (parenthesized_expression "(pfVar21[2] - pfVar22[2])" ( (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - (subscript_expression "pfVar22[2]" identifier [ number_literal ])) )) * (parenthesized_expression "(pfVar21[2] - pfVar22[2])" ( (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - (subscript_expression "pfVar22[2]" identifier [ number_literal ])) ))) + (binary_expression "(*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (parenthesized_expression "(*pfVar21 - *pfVar22)" ( (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" * identifier) - (pointer_expression "*pfVar22" * identifier)) )) * (parenthesized_expression "(*pfVar21 - *pfVar22)" ( (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" * identifier) - (pointer_expression "*pfVar22" * identifier)) )))) + (binary_expression "(pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (parenthesized_expression "(pfVar21[1] - pfVar22[1])" ( (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - (subscript_expression "pfVar22[1]" identifier [ number_literal ])) )) * (parenthesized_expression "(pfVar21[1] - pfVar22[1])" ( (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - (subscript_expression "pfVar22[1]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar16 = iVar26;" (assignment_expression "iVar16 = iVar26" identifier = identifier) ;) (if_statement "if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" if (parenthesized_expression "(fVar47 <= fVar49)" ( (binary_expression "fVar47 <= fVar49" identifier <= identifier) )) (compound_statement "{\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" { (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" identifier = identifier) ;) (expression_statement "fVar49 = fVar47;" (assignment_expression "fVar49 = fVar47" identifier = identifier) ;) })) (expression_statement "fVar47 = fVar49;" (assignment_expression "fVar47 = fVar49" identifier = identifier) ;) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" identifier = (binary_expression "pfVar22 + 3" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar16;" (assignment_expression "iVar6 = iVar16" identifier = identifier) ;) }) while (parenthesized_expression "(iVar26 != 4)" ( (binary_expression "iVar26 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar11 = (byte)iVar16;" (assignment_expression "*pbVar11 = (byte)iVar16" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)iVar16" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s3 != pbVar11)" ( (binary_expression "unaff_s3 != pbVar11" identifier != identifier) )) ;) })) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" identifier = identifier) ;) (do_statement "do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);" do (compound_statement "{\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          }" { (while_statement "while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" while (parenthesized_expression "(fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN)" ( (comma_expression "fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "fVar28 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) , (comma_expression "unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "unaff_s4 = pfVar21" identifier = identifier) , (binary_expression "fVar28 != -NAN" identifier != (unary_expression "-NAN" - identifier)))) )) (compound_statement "{\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" { (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = local_dc[(int)fVar28];" (assignment_expression "*pbVar11 = local_dc[(int)fVar28]" (pointer_expression "*pbVar11" * identifier) = (subscript_expression "local_dc[(int)fVar28]" identifier [ (cast_expression "(int)fVar28" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == unaff_s2) goto LAB_00216af4;" if (parenthesized_expression "(unaff_s1 == unaff_s2)" ( (binary_expression "unaff_s1 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_00216af4;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != unaff_s2)" ( (binary_expression "unaff_s1 != unaff_s2" identifier != identifier) )) ;) }) (else_clause "else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" else (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" { (if_statement "if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" if (parenthesized_expression "(unaff_s0 == (byte *)0x0)" ( (binary_expression "unaff_s0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" { (labeled_statement "LAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" statement_identifier : (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier = (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" identifier (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" ( identifier , (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))) )))) ;)) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" identifier = number_literal) ;) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" identifier = number_literal) ;) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" identifier = number_literal) ;) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" identifier = number_literal) ;) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" statement_identifier : (expression_statement "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;" statement_identifier : (if_statement "if (fVar29 < 0.0) goto LAB_0021720c;" if (parenthesized_expression "(fVar29 < 0.0)" ( (binary_expression "fVar29 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_0021720c;" goto statement_identifier ;))) (labeled_statement "LAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" statement_identifier : (if_statement "if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" if (parenthesized_expression "(fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c))" ( (binary_expression "fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier <= (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) )) (compound_statement "{\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" { (expression_statement "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" identifier * (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) + (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) )))))) ;) }) (else_clause "else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" else (compound_statement "{\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" { (expression_statement "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" identifier = (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" * (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e68" identifier + number_literal) ))))) ;) })))) (if_statement "if (0.0 < (float)uVar39) goto LAB_002167f4;" if (parenthesized_expression "(0.0 < (float)uVar39)" ( (binary_expression "0.0 < (float)uVar39" number_literal < (cast_expression "(float)uVar39" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_002167f4;" goto statement_identifier ;)) (labeled_statement "LAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" statement_identifier : (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" identifier = (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" ( (type_descriptor "float" primitive_type) ) (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" ( (pointer_expression "*(code *)PTR_ceilf_003a9484" * (cast_expression "(code *)PTR_ceilf_003a9484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" identifier = (call_expression "CONCAT44(uVar37,fVar28)" identifier (argument_list "(uVar37,fVar28)" ( identifier , identifier )))) ;) (goto_statement "goto joined_r0x00216814;" goto statement_identifier ;) })) (expression_statement "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" * (cast_expression "(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" identifier + number_literal) ))))) ;) (expression_statement "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" * (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" ( (binary_expression "PTR_s_courses_003a88ec + -0xe34" identifier + number_literal) ))))) ;) (expression_statement "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);" (assignment_expression "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e44)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e44" identifier + number_literal) ))))) ;) (expression_statement "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e48" identifier + number_literal) ))))) ;) (expression_statement "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e4c" identifier + number_literal) ))))) ;) (expression_statement "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);" (assignment_expression "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e38)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e38" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674)" identifier = (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2674)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2674)" ( (binary_expression "PTR_LAB_003a8bc4 + 0x2674" identifier + number_literal) )))) ;) (expression_statement "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);" (assignment_expression "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e40)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e40" identifier + number_literal) ))))) ;) (expression_statement "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e6c" identifier + number_literal) ))))) ;) (expression_statement "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);" (assignment_expression "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e3c)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e3c" identifier + number_literal) ))))) ;) (expression_statement "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e70" identifier + number_literal) ))))) ;) (expression_statement "local_43c = 0;" (assignment_expression "local_43c = 0" identifier = number_literal) ;) (expression_statement "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e54" identifier + number_literal) ))))) ;) (expression_statement "local_42c = 0;" (assignment_expression "local_42c = 0" identifier = number_literal) ;) (expression_statement "local_3d8 = 0.0;" (assignment_expression "local_3d8 = 0.0" identifier = number_literal) ;) (expression_statement "local_3d4 = 0.0;" (assignment_expression "local_3d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_3d0 = 0.0;" (assignment_expression "local_3d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" identifier = (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" * (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e50" identifier + number_literal) ))))) ;) (expression_statement "local_3cc = 0;" (assignment_expression "local_3cc = 0" identifier = number_literal) ;) (expression_statement "local_470 = fVar49;" (assignment_expression "local_470 = fVar49" identifier = identifier) ;) (expression_statement "local_46c = fVar47;" (assignment_expression "local_46c = fVar47" identifier = identifier) ;) (expression_statement "local_468 = fVar43;" (assignment_expression "local_468 = fVar43" identifier = identifier) ;) (expression_statement "local_454 = local_458;" (assignment_expression "local_454 = local_458" identifier = identifier) ;) (expression_statement "local_450 = local_458;" (assignment_expression "local_450 = local_458" identifier = identifier) ;) (expression_statement "local_44c = local_458;" (assignment_expression "local_44c = local_458" identifier = identifier) ;) (expression_statement "local_440 = local_448;" (assignment_expression "local_440 = local_448" identifier = identifier) ;) (expression_statement "local_430 = local_438;" (assignment_expression "local_430 = local_438" identifier = identifier) ;) (expression_statement "local_424 = local_428;" (assignment_expression "local_424 = local_428" identifier = identifier) ;) (expression_statement "local_420 = local_428;" (assignment_expression "local_420 = local_428" identifier = identifier) ;) (expression_statement "local_41c = local_428;" (assignment_expression "local_41c = local_428" identifier = identifier) ;) (expression_statement "local_414 = local_418;" (assignment_expression "local_414 = local_418" identifier = identifier) ;) (expression_statement "local_410 = local_418;" (assignment_expression "local_410 = local_418" identifier = identifier) ;) (expression_statement "local_404 = local_408;" (assignment_expression "local_404 = local_408" identifier = identifier) ;) (expression_statement "local_400 = local_408;" (assignment_expression "local_400 = local_408" identifier = identifier) ;) (expression_statement "local_3fc = local_408;" (assignment_expression "local_3fc = local_408" identifier = identifier) ;) (expression_statement "local_3f4 = local_3f8;" (assignment_expression "local_3f4 = local_3f8" identifier = identifier) ;) (expression_statement "local_3f0 = local_3f8;" (assignment_expression "local_3f0 = local_3f8" identifier = identifier) ;) (expression_statement "local_3ec = local_3f8;" (assignment_expression "local_3ec = local_3f8" identifier = identifier) ;) (expression_statement "local_3e4 = local_3e8;" (assignment_expression "local_3e4 = local_3e8" identifier = identifier) ;) (expression_statement "local_3e0 = local_3e8;" (assignment_expression "local_3e0 = local_3e8" identifier = identifier) ;) (expression_statement "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);" (call_expression "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" identifier (argument_list "(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_1fc" & identifier) , (pointer_expression "&local_3d8" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_UINT_003a8950 + -0x1e60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" ( (binary_expression "PTR_UINT_003a8950 + -0x1e60" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = (float *)0x0;" (assignment_expression "pfVar22 = (float *)0x0" identifier = (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = (float *)0x0;" (assignment_expression "unaff_s4 = (float *)0x0" identifier = (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar9 = PTR_LAB_003a8bc8 + -0x7df4;" (assignment_expression "puVar9 = PTR_LAB_003a8bc8 + -0x7df4" identifier = (binary_expression "PTR_LAB_003a8bc8 + -0x7df4" identifier + number_literal)) ;) (do_statement "do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);" do (compound_statement "{\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          }" { (expression_statement "uVar5 = (uint)uVar45;" (assignment_expression "uVar5 = (uint)uVar45" identifier = (cast_expression "(uint)uVar45" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" ( (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" * (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "local_3c8 = unaff_s0;" (assignment_expression "local_3c8 = unaff_s0" identifier = identifier) ;) (expression_statement "local_3c4 = &local_458;" (assignment_expression "local_3c4 = &local_458" identifier = (pointer_expression "&local_458" & identifier)) ;) (expression_statement "local_3c0 = &local_47c;" (assignment_expression "local_3c0 = &local_47c" identifier = (pointer_expression "&local_47c" & identifier)) ;) (expression_statement "local_3bc = &local_488;" (assignment_expression "local_3bc = &local_488" identifier = (pointer_expression "&local_488" & identifier)) ;) (expression_statement "local_3b8 = &local_448;" (assignment_expression "local_3b8 = &local_448" identifier = (pointer_expression "&local_448" & identifier)) ;) (expression_statement "local_3b4 = &local_438;" (assignment_expression "local_3b4 = &local_438" identifier = (pointer_expression "&local_438" & identifier)) ;) (expression_statement "local_3b0 = &local_428;" (assignment_expression "local_3b0 = &local_428" identifier = (pointer_expression "&local_428" & identifier)) ;) (expression_statement "local_3ac = &local_418;" (assignment_expression "local_3ac = &local_418" identifier = (pointer_expression "&local_418" & identifier)) ;) (expression_statement "local_3a8 = &local_1fc;" (assignment_expression "local_3a8 = &local_1fc" identifier = (pointer_expression "&local_1fc" & identifier)) ;) (expression_statement "local_3a4 = &local_408;" (assignment_expression "local_3a4 = &local_408" identifier = (pointer_expression "&local_408" & identifier)) ;) (expression_statement "local_3a0 = &local_3f8;" (assignment_expression "local_3a0 = &local_3f8" identifier = (pointer_expression "&local_3f8" & identifier)) ;) (expression_statement "local_39c = &local_3e8;" (assignment_expression "local_39c = &local_3e8" identifier = (pointer_expression "&local_3e8" & identifier)) ;) (expression_statement "local_398 = &local_3d8;" (assignment_expression "local_398 = &local_3d8" identifier = (pointer_expression "&local_3d8" & identifier)) ;) (expression_statement "local_394 = uVar5;" (assignment_expression "local_394 = uVar5" identifier = identifier) ;) (expression_statement "local_390 = unaff_s4;" (assignment_expression "local_390 = unaff_s4" identifier = identifier) ;) (expression_statement "local_38c = iVar6;" (assignment_expression "local_38c = iVar6" identifier = identifier) ;) (expression_statement "local_388 = iVar26;" (assignment_expression "local_388 = iVar26" identifier = identifier) ;) (expression_statement "local_384 = iVar16;" (assignment_expression "local_384 = iVar16" identifier = identifier) ;) (expression_statement "local_380 = pfVar22;" (assignment_expression "local_380 = pfVar22" identifier = identifier) ;) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" ( (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" * (cast_expression "(code *)PTR_GOMP_parallel_003a9198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_3c8,extraout_v1,0)" ( identifier , (pointer_expression "&local_3c8" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar16 = local_384;" (assignment_expression "iVar16 = local_384" identifier = identifier) ;) (expression_statement "iVar26 = local_388;" (assignment_expression "iVar26 = local_388" identifier = identifier) ;) (expression_statement "iVar6 = local_38c;" (assignment_expression "iVar6 = local_38c" identifier = identifier) ;) (expression_statement "unaff_s4 = local_390;" (assignment_expression "unaff_s4 = local_390" identifier = identifier) ;) (expression_statement "uVar45 = (ulonglong)local_394;" (assignment_expression "uVar45 = (ulonglong)local_394" identifier = (cast_expression "(ulonglong)local_394" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "pfVar18 = unaff_s4;" (assignment_expression "pfVar18 = unaff_s4" identifier = identifier) ;) (if_statement "if (pfVar22 != local_390) break;" if (parenthesized_expression "(pfVar22 != local_390)" ( (binary_expression "pfVar22 != local_390" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pfVar22 = (float *)((int)pfVar22 + 1);" (assignment_expression "pfVar22 = (float *)((int)pfVar22 + 1)" identifier = (cast_expression "(float *)((int)pfVar22 + 1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar22 + 1)" ( (binary_expression "(int)pfVar22 + 1" (cast_expression "(int)pfVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" if (parenthesized_expression "(pfVar22 == (float *)&DAT_00000008)" ( (binary_expression "pfVar22 == (float *)&DAT_00000008" identifier == (cast_expression "(float *)&DAT_00000008" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" { (expression_statement "pfVar18 = (float *)&DAT_00000007;" (assignment_expression "pfVar18 = (float *)&DAT_00000007" identifier = (cast_expression "(float *)&DAT_00000007" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000007" & identifier))) ;) (break_statement "break;" break ;) })) (expression_statement "local_45c = local_480 - local_474;" (assignment_expression "local_45c = local_480 - local_474" identifier = (binary_expression "local_480 - local_474" identifier - identifier)) ;) (expression_statement "local_460 = local_484 - local_478;" (assignment_expression "local_460 = local_484 - local_478" identifier = (binary_expression "local_484 - local_478" identifier - identifier)) ;) (expression_statement "local_464 = local_488 - local_47c;" (assignment_expression "local_464 = local_488 - local_47c" identifier = (binary_expression "local_488 - local_47c" identifier - identifier)) ;) (expression_statement "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);" (assignment_expression "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" identifier = (call_expression "(*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_1fc" & identifier) , (pointer_expression "&local_3d8" & identifier) , identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar11 = local_dc + (int)pfVar18 * 0x10;" (assignment_expression "pbVar11 = local_dc + (int)pfVar18 * 0x10" identifier = (binary_expression "local_dc + (int)pfVar18 * 0x10" identifier + (binary_expression "(int)pfVar18 * 0x10" (cast_expression "(int)pfVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 0;" (assignment_expression "local_ec[bVar1] = 0" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar6 != pbVar10)" ( (binary_expression "pbVar11 + iVar6 != pbVar10" (binary_expression "pbVar11 + iVar6" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" if (parenthesized_expression "(iVar6 < iVar26)" ( (binary_expression "iVar6 < iVar26" identifier < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar6;" (assignment_expression "pbVar10 = pbVar11 + iVar6" identifier = (binary_expression "pbVar11 + iVar6" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 2;" (assignment_expression "local_ec[bVar1] = 2" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar26 != pbVar10)" ( (binary_expression "pbVar11 + iVar26 != pbVar10" (binary_expression "pbVar11 + iVar26" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" if (parenthesized_expression "(iVar26 < iVar16)" ( (binary_expression "iVar26 < iVar16" identifier < identifier) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar26;" (assignment_expression "pbVar10 = pbVar11 + iVar26" identifier = (binary_expression "pbVar11 + iVar26" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 3;" (assignment_expression "local_ec[bVar1] = 3" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + iVar16 != pbVar10)" ( (binary_expression "pbVar11 + iVar16 != pbVar10" (binary_expression "pbVar11 + iVar16" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" if (parenthesized_expression "(iVar16 < (int)unaff_s3)" ( (binary_expression "iVar16 < (int)unaff_s3" identifier < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" { (expression_statement "pbVar10 = pbVar11 + iVar16;" (assignment_expression "pbVar10 = pbVar11 + iVar16" identifier = (binary_expression "pbVar11 + iVar16" identifier + identifier)) ;) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);" do (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_ec[bVar1] = 1;" (assignment_expression "local_ec[bVar1] = 1" (subscript_expression "local_ec[bVar1]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar11 + (int)unaff_s3 != pbVar10)" ( (binary_expression "pbVar11 + (int)unaff_s3 != pbVar10" (binary_expression "pbVar11 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" identifier = identifier) ;) (do_statement "do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);" do (compound_statement "{\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          }" { (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" while (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" ( (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" identifier = identifier) , (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" * identifier) != (unary_expression "-NAN" - identifier))) )) (compound_statement "{\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" { (expression_statement "*pbVar11 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar11 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar11" * identifier) = (subscript_expression "local_ec[(int)*pfVar21]" identifier [ (cast_expression "(int)*pfVar21" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pfVar21" * identifier)) ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;" if (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" ( (binary_expression "unaff_s1 == pfVar21 + 1" identifier == (binary_expression "pfVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002176b0;" goto statement_identifier ;)) })) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" ( (binary_expression "unaff_s1 != pfVar21 + 1" identifier != (binary_expression "pfVar21 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_002176b0:\n          unaff_s2 = pfVar21 + 1;" statement_identifier : (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" identifier = (binary_expression "pfVar21 + 1" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" statement_identifier : (expression_statement "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" (call_expression "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" identifier (argument_list "(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) })) })) (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" identifier = identifier) ;) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;" if (parenthesized_expression "((int)uVar5 <= (int)local_4c8)" ( (binary_expression "(int)uVar5 <= (int)local_4c8" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_4c8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00216b50;" goto statement_identifier ;)) }) 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) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (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 = 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) ))))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) < LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (field_expression IDENT . field_identifier)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) - IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (field_expression IDENT . field_identifier) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT - IDENT) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (field_expression IDENT . field_identifier) & LIT) ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = 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 = 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 = 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 = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (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) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) / IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (field_expression IDENT . field_identifier)) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (field_expression IDENT . field_identifier)) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = IDENT) , (binary_expression (binary_expression IDENT - IDENT) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (field_expression IDENT . field_identifier)) < LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT - LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != (unary_expression - IDENT))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = 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 IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) != IDENT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (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) )))))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT * (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (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) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) }))) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) * (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))) + (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT)) )) * (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT)) )))) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) * (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (unary_expression - IDENT)))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (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) )))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (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) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != (unary_expression - IDENT))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , 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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_002160a4(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (identifier "FUN_002160a4") (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint *puVar7;\n  float *pfVar8;\n  undefined *puVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 extraout_v1;\n  uint uVar12;\n  bool bVar13;\n  int iVar14;\n  bool bVar15;\n  int iVar16;\n  bool bVar17;\n  float *pfVar18;\n  int iVar19;\n  byte *unaff_s0;\n  float *unaff_s1;\n  float *unaff_s2;\n  uint uVar20;\n  byte *unaff_s3;\n  float *unaff_s4;\n  float *pfVar21;\n  int unaff_s6;\n  float *pfVar22;\n  uint uVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  int unaff_s8;\n  int iVar26;\n  float fVar28;\n  float fVar29;\n  double dVar27;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  float fVar34;\n  float fVar35;\n  double dVar36;\n  undefined4 uVar37;\n  double dVar38;\n  undefined8 uVar39;\n  double dVar40;\n  float fVar41;\n  double dVar42;\n  float fVar43;\n  float fVar44;\n  float fVar46;\n  ulonglong uVar45;\n  float fVar47;\n  float fVar48;\n  float fVar49;\n  double dVar50;\n  double dVar51;\n  uint uVar52;\n  undefined *local_50c;\n  double local_508;\n  double local_500;\n  double local_4f8;\n  double local_4f0;\n  undefined *local_4e8;\n  int local_4e4;\n  uint local_4dc;\n  uint local_4d0;\n  uint local_4cc;\n  uint local_4c8;\n  float local_488;\n  float local_484;\n  float local_480;\n  float local_47c;\n  float local_478;\n  float local_474;\n  float local_470;\n  float local_46c;\n  float local_468;\n  float local_464;\n  float local_460;\n  float local_45c;\n  undefined4 local_458;\n  undefined4 local_454;\n  undefined4 local_450;\n  undefined4 local_44c;\n  undefined4 local_448;\n  undefined4 local_444;\n  undefined4 local_440;\n  undefined4 local_43c;\n  undefined4 local_438;\n  undefined4 local_434;\n  undefined4 local_430;\n  undefined4 local_42c;\n  undefined4 local_428;\n  undefined4 local_424;\n  undefined4 local_420;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\n  undefined4 local_40c;\n  undefined4 local_408;\n  undefined4 local_404;\n  undefined4 local_400;\n  undefined4 local_3fc;\n  undefined4 local_3f8;\n  undefined4 local_3f4;\n  undefined4 local_3f0;\n  undefined4 local_3ec;\n  undefined4 local_3e8;\n  undefined4 local_3e4;\n  undefined4 local_3e0;\n  undefined4 local_3dc;\n  float local_3d8;\n  float local_3d4;\n  float local_3d0;\n  undefined4 local_3cc;\n  byte *local_3c8;\n  undefined4 *local_3c4;\n  float *local_3c0;\n  float *local_3bc;\n  undefined4 *local_3b8;\n  undefined4 *local_3b4;\n  undefined4 *local_3b0;\n  undefined4 *local_3ac;\n  float *local_3a8;\n  undefined4 *local_3a4;\n  undefined4 *local_3a0;\n  undefined4 *local_39c;\n  float *local_398;\n  uint local_394;\n  float *local_390;\n  int local_38c;\n  int local_388;\n  int local_384;\n  float *local_380;\n  uint local_37c [16];\n  float local_33c [16];\n  float local_2fc [64];\n  float local_1fc;\n  float local_1f8;\n  float local_1f4;\n  float local_1f0;\n  float local_1ec;\n  float local_1e8;\n  float local_1e4;\n  float local_1e0;\n  float local_1dc;\n  float local_1d8;\n  float local_1d4;\n  float local_1d0;\n  byte local_fc [16];\n  byte local_ec [16];\n  byte local_dc [16];\n  byte abStack_cc [112];\n  int local_5c;\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  local_5c = *(int *)PTR___stack_chk_guard_003a9230;\n  uVar5 = *(uint *)(param_1 + 0x1c);\n  pfVar21 = unaff_s4;\n  if ((int)uVar5 < 1) goto LAB_00216b50;\n  local_4d0 = 0;\n  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\nLAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "float *pfVar8;" (primitive_type "float") (pointer_declarator "*pfVar8" (* "*") (identifier "pfVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "float *pfVar18;" (primitive_type "float") (pointer_declarator "*pfVar18" (* "*") (identifier "pfVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *unaff_s0;" (type_identifier "byte") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "float *unaff_s1;" (primitive_type "float") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "float *unaff_s2;" (primitive_type "float") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "byte *unaff_s3;" (type_identifier "byte") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "float *unaff_s4;" (primitive_type "float") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "float *pfVar21;" (primitive_type "float") (pointer_declarator "*pfVar21" (* "*") (identifier "pfVar21")) (; ";")) (declaration "int unaff_s6;" (primitive_type "int") (identifier "unaff_s6") (; ";")) (declaration "float *pfVar22;" (primitive_type "float") (pointer_declarator "*pfVar22" (* "*") (identifier "pfVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "int unaff_s8;" (primitive_type "int") (identifier "unaff_s8") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "float fVar28;" (primitive_type "float") (identifier "fVar28") (; ";")) (declaration "float fVar29;" (primitive_type "float") (identifier "fVar29") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "float fVar30;" (primitive_type "float") (identifier "fVar30") (; ";")) (declaration "float fVar31;" (primitive_type "float") (identifier "fVar31") (; ";")) (declaration "float fVar32;" (primitive_type "float") (identifier "fVar32") (; ";")) (declaration "float fVar33;" (primitive_type "float") (identifier "fVar33") (; ";")) (declaration "float fVar34;" (primitive_type "float") (identifier "fVar34") (; ";")) (declaration "float fVar35;" (primitive_type "float") (identifier "fVar35") (; ";")) (declaration "double dVar36;" (primitive_type "double") (identifier "dVar36") (; ";")) (declaration "undefined4 uVar37;" (type_identifier "undefined4") (identifier "uVar37") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "undefined8 uVar39;" (type_identifier "undefined8") (identifier "uVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "float fVar41;" (primitive_type "float") (identifier "fVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "float fVar43;" (primitive_type "float") (identifier "fVar43") (; ";")) (declaration "float fVar44;" (primitive_type "float") (identifier "fVar44") (; ";")) (declaration "float fVar46;" (primitive_type "float") (identifier "fVar46") (; ";")) (declaration "ulonglong uVar45;" (type_identifier "ulonglong") (identifier "uVar45") (; ";")) (declaration "float fVar47;" (primitive_type "float") (identifier "fVar47") (; ";")) (declaration "float fVar48;" (primitive_type "float") (identifier "fVar48") (; ";")) (declaration "float fVar49;" (primitive_type "float") (identifier "fVar49") (; ";")) (declaration "double dVar50;" (primitive_type "double") (identifier "dVar50") (; ";")) (declaration "double dVar51;" (primitive_type "double") (identifier "dVar51") (; ";")) (declaration "uint uVar52;" (type_identifier "uint") (identifier "uVar52") (; ";")) (declaration "undefined *local_50c;" (type_identifier "undefined") (pointer_declarator "*local_50c" (* "*") (identifier "local_50c")) (; ";")) (declaration "double local_508;" (primitive_type "double") (identifier "local_508") (; ";")) (declaration "double local_500;" (primitive_type "double") (identifier "local_500") (; ";")) (declaration "double local_4f8;" (primitive_type "double") (identifier "local_4f8") (; ";")) (declaration "double local_4f0;" (primitive_type "double") (identifier "local_4f0") (; ";")) (declaration "undefined *local_4e8;" (type_identifier "undefined") (pointer_declarator "*local_4e8" (* "*") (identifier "local_4e8")) (; ";")) (declaration "int local_4e4;" (primitive_type "int") (identifier "local_4e4") (; ";")) (declaration "uint local_4dc;" (type_identifier "uint") (identifier "local_4dc") (; ";")) (declaration "uint local_4d0;" (type_identifier "uint") (identifier "local_4d0") (; ";")) (declaration "uint local_4cc;" (type_identifier "uint") (identifier "local_4cc") (; ";")) (declaration "uint local_4c8;" (type_identifier "uint") (identifier "local_4c8") (; ";")) (declaration "float local_488;" (primitive_type "float") (identifier "local_488") (; ";")) (declaration "float local_484;" (primitive_type "float") (identifier "local_484") (; ";")) (declaration "float local_480;" (primitive_type "float") (identifier "local_480") (; ";")) (declaration "float local_47c;" (primitive_type "float") (identifier "local_47c") (; ";")) (declaration "float local_478;" (primitive_type "float") (identifier "local_478") (; ";")) (declaration "float local_474;" (primitive_type "float") (identifier "local_474") (; ";")) (declaration "float local_470;" (primitive_type "float") (identifier "local_470") (; ";")) (declaration "float local_46c;" (primitive_type "float") (identifier "local_46c") (; ";")) (declaration "float local_468;" (primitive_type "float") (identifier "local_468") (; ";")) (declaration "float local_464;" (primitive_type "float") (identifier "local_464") (; ";")) (declaration "float local_460;" (primitive_type "float") (identifier "local_460") (; ";")) (declaration "float local_45c;" (primitive_type "float") (identifier "local_45c") (; ";")) (declaration "undefined4 local_458;" (type_identifier "undefined4") (identifier "local_458") (; ";")) (declaration "undefined4 local_454;" (type_identifier "undefined4") (identifier "local_454") (; ";")) (declaration "undefined4 local_450;" (type_identifier "undefined4") (identifier "local_450") (; ";")) (declaration "undefined4 local_44c;" (type_identifier "undefined4") (identifier "local_44c") (; ";")) (declaration "undefined4 local_448;" (type_identifier "undefined4") (identifier "local_448") (; ";")) (declaration "undefined4 local_444;" (type_identifier "undefined4") (identifier "local_444") (; ";")) (declaration "undefined4 local_440;" (type_identifier "undefined4") (identifier "local_440") (; ";")) (declaration "undefined4 local_43c;" (type_identifier "undefined4") (identifier "local_43c") (; ";")) (declaration "undefined4 local_438;" (type_identifier "undefined4") (identifier "local_438") (; ";")) (declaration "undefined4 local_434;" (type_identifier "undefined4") (identifier "local_434") (; ";")) (declaration "undefined4 local_430;" (type_identifier "undefined4") (identifier "local_430") (; ";")) (declaration "undefined4 local_42c;" (type_identifier "undefined4") (identifier "local_42c") (; ";")) (declaration "undefined4 local_428;" (type_identifier "undefined4") (identifier "local_428") (; ";")) (declaration "undefined4 local_424;" (type_identifier "undefined4") (identifier "local_424") (; ";")) (declaration "undefined4 local_420;" (type_identifier "undefined4") (identifier "local_420") (; ";")) (declaration "undefined4 local_41c;" (type_identifier "undefined4") (identifier "local_41c") (; ";")) (declaration "undefined4 local_418;" (type_identifier "undefined4") (identifier "local_418") (; ";")) (declaration "undefined4 local_414;" (type_identifier "undefined4") (identifier "local_414") (; ";")) (declaration "undefined4 local_410;" (type_identifier "undefined4") (identifier "local_410") (; ";")) (declaration "undefined4 local_40c;" (type_identifier "undefined4") (identifier "local_40c") (; ";")) (declaration "undefined4 local_408;" (type_identifier "undefined4") (identifier "local_408") (; ";")) (declaration "undefined4 local_404;" (type_identifier "undefined4") (identifier "local_404") (; ";")) (declaration "undefined4 local_400;" (type_identifier "undefined4") (identifier "local_400") (; ";")) (declaration "undefined4 local_3fc;" (type_identifier "undefined4") (identifier "local_3fc") (; ";")) (declaration "undefined4 local_3f8;" (type_identifier "undefined4") (identifier "local_3f8") (; ";")) (declaration "undefined4 local_3f4;" (type_identifier "undefined4") (identifier "local_3f4") (; ";")) (declaration "undefined4 local_3f0;" (type_identifier "undefined4") (identifier "local_3f0") (; ";")) (declaration "undefined4 local_3ec;" (type_identifier "undefined4") (identifier "local_3ec") (; ";")) (declaration "undefined4 local_3e8;" (type_identifier "undefined4") (identifier "local_3e8") (; ";")) (declaration "undefined4 local_3e4;" (type_identifier "undefined4") (identifier "local_3e4") (; ";")) (declaration "undefined4 local_3e0;" (type_identifier "undefined4") (identifier "local_3e0") (; ";")) (declaration "undefined4 local_3dc;" (type_identifier "undefined4") (identifier "local_3dc") (; ";")) (declaration "float local_3d8;" (primitive_type "float") (identifier "local_3d8") (; ";")) (declaration "float local_3d4;" (primitive_type "float") (identifier "local_3d4") (; ";")) (declaration "float local_3d0;" (primitive_type "float") (identifier "local_3d0") (; ";")) (declaration "undefined4 local_3cc;" (type_identifier "undefined4") (identifier "local_3cc") (; ";")) (declaration "byte *local_3c8;" (type_identifier "byte") (pointer_declarator "*local_3c8" (* "*") (identifier "local_3c8")) (; ";")) (declaration "undefined4 *local_3c4;" (type_identifier "undefined4") (pointer_declarator "*local_3c4" (* "*") (identifier "local_3c4")) (; ";")) (declaration "float *local_3c0;" (primitive_type "float") (pointer_declarator "*local_3c0" (* "*") (identifier "local_3c0")) (; ";")) (declaration "float *local_3bc;" (primitive_type "float") (pointer_declarator "*local_3bc" (* "*") (identifier "local_3bc")) (; ";")) (declaration "undefined4 *local_3b8;" (type_identifier "undefined4") (pointer_declarator "*local_3b8" (* "*") (identifier "local_3b8")) (; ";")) (declaration "undefined4 *local_3b4;" (type_identifier "undefined4") (pointer_declarator "*local_3b4" (* "*") (identifier "local_3b4")) (; ";")) (declaration "undefined4 *local_3b0;" (type_identifier "undefined4") (pointer_declarator "*local_3b0" (* "*") (identifier "local_3b0")) (; ";")) (declaration "undefined4 *local_3ac;" (type_identifier "undefined4") (pointer_declarator "*local_3ac" (* "*") (identifier "local_3ac")) (; ";")) (declaration "float *local_3a8;" (primitive_type "float") (pointer_declarator "*local_3a8" (* "*") (identifier "local_3a8")) (; ";")) (declaration "undefined4 *local_3a4;" (type_identifier "undefined4") (pointer_declarator "*local_3a4" (* "*") (identifier "local_3a4")) (; ";")) (declaration "undefined4 *local_3a0;" (type_identifier "undefined4") (pointer_declarator "*local_3a0" (* "*") (identifier "local_3a0")) (; ";")) (declaration "undefined4 *local_39c;" (type_identifier "undefined4") (pointer_declarator "*local_39c" (* "*") (identifier "local_39c")) (; ";")) (declaration "float *local_398;" (primitive_type "float") (pointer_declarator "*local_398" (* "*") (identifier "local_398")) (; ";")) (declaration "uint local_394;" (type_identifier "uint") (identifier "local_394") (; ";")) (declaration "float *local_390;" (primitive_type "float") (pointer_declarator "*local_390" (* "*") (identifier "local_390")) (; ";")) (declaration "int local_38c;" (primitive_type "int") (identifier "local_38c") (; ";")) (declaration "int local_388;" (primitive_type "int") (identifier "local_388") (; ";")) (declaration "int local_384;" (primitive_type "int") (identifier "local_384") (; ";")) (declaration "float *local_380;" (primitive_type "float") (pointer_declarator "*local_380" (* "*") (identifier "local_380")) (; ";")) (declaration "uint local_37c [16];" (type_identifier "uint") (array_declarator "local_37c [16]" (identifier "local_37c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float local_33c [16];" (primitive_type "float") (array_declarator "local_33c [16]" (identifier "local_33c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float local_2fc [64];" (primitive_type "float") (array_declarator "local_2fc [64]" (identifier "local_2fc") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "float local_1fc;" (primitive_type "float") (identifier "local_1fc") (; ";")) (declaration "float local_1f8;" (primitive_type "float") (identifier "local_1f8") (; ";")) (declaration "float local_1f4;" (primitive_type "float") (identifier "local_1f4") (; ";")) (declaration "float local_1f0;" (primitive_type "float") (identifier "local_1f0") (; ";")) (declaration "float local_1ec;" (primitive_type "float") (identifier "local_1ec") (; ";")) (declaration "float local_1e8;" (primitive_type "float") (identifier "local_1e8") (; ";")) (declaration "float local_1e4;" (primitive_type "float") (identifier "local_1e4") (; ";")) (declaration "float local_1e0;" (primitive_type "float") (identifier "local_1e0") (; ";")) (declaration "float local_1dc;" (primitive_type "float") (identifier "local_1dc") (; ";")) (declaration "float local_1d8;" (primitive_type "float") (identifier "local_1d8") (; ";")) (declaration "float local_1d4;" (primitive_type "float") (identifier "local_1d4") (; ";")) (declaration "float local_1d0;" (primitive_type "float") (identifier "local_1d0") (; ";")) (declaration "byte local_fc [16];" (type_identifier "byte") (array_declarator "local_fc [16]" (identifier "local_fc") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte local_ec [16];" (type_identifier "byte") (array_declarator "local_ec [16]" (identifier "local_ec") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte local_dc [16];" (type_identifier "byte") (array_declarator "local_dc [16]" (identifier "local_dc") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte abStack_cc [112];" (type_identifier "byte") (array_declarator "abStack_cc [112]" (identifier "abStack_cc") ([ "[") (number_literal "112") (] "]")) (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar4 = PTR___stack_chk_guard_003a9230" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_5c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" (identifier "pfVar21") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if ((int)uVar5 < 1) goto LAB_00216b50;" (if "if") (parenthesized_expression "((int)uVar5 < 1)" (( "(") (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00216b50;" (goto "goto") (statement_identifier "LAB_00216b50") (; ";"))) (expression_statement "local_4d0 = 0;" (assignment_expression "local_4d0 = 0" (identifier "local_4d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (identifier "local_500") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "local_50c") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";")) (expression_statement "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "local_4e8") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";")) (expression_statement "local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (identifier "local_4f8") (= "=") (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")) () ")"))))) (; ";")) (labeled_statement "LAB_00216150:\n  do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" (statement_identifier "LAB_00216150") (: ":") (do_statement "do {\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  } while( true );" (do "do") (compound_statement "{\n    local_508._0_4_ = *(uint *)(param_1 + 0x18);\n    local_4c8 = local_4d0 + 4;\n    uVar23 = 0;\n    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;\n    while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }\n    local_4d0 = local_4c8;\n    uVar5 = *(uint *)(param_1 + 0x1c);\n    pfVar21 = unaff_s4;\n    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;\n  }" ({ "{") (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_4c8 = local_4d0 + 4;" (assignment_expression "local_4c8 = local_4d0 + 4" (identifier "local_4c8") (= "=") (binary_expression "local_4d0 + 4" (identifier "local_4d0") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)local_508._0_4_ < 1) goto LAB_00216b38;" (if "if") (parenthesized_expression "((int)local_508._0_4_ < 1)" (( "(") (binary_expression "(int)local_508._0_4_ < 1" (cast_expression "(int)local_508._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_"))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00216b38;" (goto "goto") (statement_identifier "LAB_00216b38") (; ";"))) (while_statement "while( true ) {\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      local_4cc = uVar23 + 4;\n      if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }\n      if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }\n      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);\n      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n      puVar9 = PTR_LAB_003a88e0;\n      unaff_s6 = param_2;\n      unaff_s8 = param_1;\n      if (iVar6 == 0) break;\n      unaff_s2 = local_33c;\n      unaff_s4 = local_2fc;\n      puVar7 = local_37c;\n      unaff_s1 = unaff_s2;\n      do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);\n      pfVar21 = unaff_s4;\n      if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }\n      unaff_s3 = unaff_s0;\n      if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }\n      iVar6 = 0;\n      uVar5 = 0xffffffff;\n      iVar26 = 0;\n      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);\n      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);\n      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);\n      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);\n      if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }\n      if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }\n      if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }\n      local_fc[2] = (char)uVar20;\n      local_fc[1] = (char)uVar12;\n      local_fc[0] = (byte)uVar23;\n      while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }\n      pbVar11 = local_ec;\n      do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);\n      do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);\nLAB_00216f04:\n      unaff_s2 = pfVar21 + 1;\n      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);\n      while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }\n    }" ({ "{") (expression_statement "local_4cc = uVar23 + 4;" (assignment_expression "local_4cc = uVar23 + 4" (identifier "local_4cc") (= "=") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (local_4cc < local_508._0_4_) {\n        local_508._0_4_ = 4;\n      }\n      else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" (if "if") (parenthesized_expression "(local_4cc < local_508._0_4_)" (( "(") (binary_expression "local_4cc < local_508._0_4_" (identifier "local_4cc") (< "<") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_"))) () ")")) (compound_statement "{\n        local_508._0_4_ = 4;\n      }" ({ "{") (expression_statement "local_508._0_4_ = 4;" (assignment_expression "local_508._0_4_ = 4" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" (else "else") (compound_statement "{\n        local_508._0_4_ = local_508._0_4_ - uVar23;\n      }" ({ "{") (expression_statement "local_508._0_4_ = local_508._0_4_ - uVar23;" (assignment_expression "local_508._0_4_ = local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "local_508._0_4_ - uVar23" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (- "-") (identifier "uVar23"))) (; ";")) (} "}")))) (if_statement "if (local_4c8 < uVar5) {\n        local_4e4 = 4;\n      }\n      else {\n        local_4e4 = uVar5 - local_4d0;\n      }" (if "if") (parenthesized_expression "(local_4c8 < uVar5)" (( "(") (binary_expression "local_4c8 < uVar5" (identifier "local_4c8") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n        local_4e4 = 4;\n      }" ({ "{") (expression_statement "local_4e4 = 4;" (assignment_expression "local_4e4 = 4" (identifier "local_4e4") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        local_4e4 = uVar5 - local_4d0;\n      }" (else "else") (compound_statement "{\n        local_4e4 = uVar5 - local_4d0;\n      }" ({ "{") (expression_statement "local_4e4 = uVar5 - local_4d0;" (assignment_expression "local_4e4 = uVar5 - local_4d0" (identifier "local_4e4") (= "=") (binary_expression "uVar5 - local_4d0" (identifier "uVar5") (- "-") (identifier "local_4d0"))) (; ";")) (} "}")))) (expression_statement "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);" (assignment_expression "iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_GetVirtualPixels_003a9764)\n                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" (parenthesized_expression "(*(code *)PTR_GetVirtualPixels_003a9764)" (( "(") (pointer_expression "*(code *)PTR_GetVirtualPixels_003a9764" (* "*") (cast_expression "(code *)PTR_GetVirtualPixels_003a9764" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetVirtualPixels_003a9764"))) () ")")) (argument_list "(param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "uVar23") (, ",") (identifier "local_4d0") (, ",") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (, ",") (identifier "local_4e4") (, ",") (identifier "param_5") () ")")))) (; ";")) (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")) (; ";")) (expression_statement "puVar9 = PTR_LAB_003a88e0;" (assignment_expression "puVar9 = PTR_LAB_003a88e0" (identifier "puVar9") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" (identifier "unaff_s6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" (identifier "unaff_s8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "unaff_s2 = local_33c;" (assignment_expression "unaff_s2 = local_33c" (identifier "unaff_s2") (= "=") (identifier "local_33c")) (; ";")) (expression_statement "unaff_s4 = local_2fc;" (assignment_expression "unaff_s4 = local_2fc" (identifier "unaff_s4") (= "=") (identifier "local_2fc")) (; ";")) (expression_statement "puVar7 = local_37c;" (assignment_expression "puVar7 = local_37c" (identifier "puVar7") (= "=") (identifier "local_37c")) (; ";")) (expression_statement "unaff_s1 = unaff_s2;" (assignment_expression "unaff_s1 = unaff_s2" (identifier "unaff_s1") (= "=") (identifier "unaff_s2")) (; ";")) (do_statement "do {\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      } while (unaff_s4 != unaff_s1);" (do "do") (compound_statement "{\n        *unaff_s1 = -NAN;\n        unaff_s1 = unaff_s1 + 1;\n        *puVar7 = 0xffffffff;\n        puVar7 = puVar7 + 1;\n      }" ({ "{") (expression_statement "*unaff_s1 = -NAN;" (assignment_expression "*unaff_s1 = -NAN" (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")) (= "=") (unary_expression "-NAN" (- "-") (identifier "NAN"))) (; ";")) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 + 1" (identifier "unaff_s1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = 0xffffffff;" (assignment_expression "*puVar7 = 0xffffffff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s4 != unaff_s1)" (( "(") (binary_expression "unaff_s4 != unaff_s1" (identifier "unaff_s4") (!= "!=") (identifier "unaff_s1")) () ")")) (; ";")) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" (identifier "pfVar21") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (local_4e4 < 1) {\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }\n      else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" (if "if") (parenthesized_expression "(local_4e4 < 1)" (( "(") (binary_expression "local_4e4 < 1" (identifier "local_4e4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }\n        local_508._0_4_ = 0;\n        uVar23 = 0;\n        local_4dc = 5;\n        uVar5 = 0xff;\n        unaff_s0 = (byte *)0x0;\nLAB_002176f8:\n        pbVar11 = local_ec;\n        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);\n        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);\n        uVar20 = uVar23;\n        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }\n        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);\n        if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }\nLAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);\n        do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);\n      }" ({ "{") (if_statement "if (param_2 != 0x35545844) {\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" (if "if") (parenthesized_expression "(param_2 != 0x35545844)" (( "(") (binary_expression "param_2 != 0x35545844" (identifier "param_2") (!= "!=") (number_literal "0x35545844")) () ")")) (compound_statement "{\n          unaff_s0 = (byte *)0x0;\n          local_474 = 0.0;\n          local_478 = 0.0;\n          local_47c = 0.0;\n          local_480 = 0.0;\n          local_484 = 0.0;\n          local_488 = 0.0;\n          unaff_s3 = (byte *)0x0;\n          goto LAB_0021703c;\n        }" ({ "{") (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" (identifier "local_474") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" (identifier "local_478") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" (identifier "local_47c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" (identifier "local_480") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" (identifier "local_484") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" (identifier "local_488") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "unaff_s3 = (byte *)0x0;" (assignment_expression "unaff_s3 = (byte *)0x0" (identifier "unaff_s3") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0021703c;" (goto "goto") (statement_identifier "LAB_0021703c") (; ";")) (} "}"))) (expression_statement "local_508._0_4_ = 0;" (assignment_expression "local_508._0_4_ = 0" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4dc = 5;" (assignment_expression "local_4dc = 5" (identifier "local_4dc") (= "=") (number_literal "5")) (; ";")) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" (identifier "uVar5") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_002176f8:\n        pbVar11 = local_ec;" (statement_identifier "LAB_002176f8") (: ":") (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" (identifier "pbVar11") (= "=") (identifier "local_ec")) (; ";"))) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574)" (identifier "pcVar25") (= "=") (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2574)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2574)" (( "(") (binary_expression "PTR_LAB_003a8bc4 + 0x2574" (identifier "PTR_LAB_003a8bc4") (+ "+") (number_literal "0x2574")) () ")")))) (; ";")) (expression_statement "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);" (assignment_expression "uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" (identifier "uVar12") (= "=") (call_expression "FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" (identifier "FUN_00212574") (argument_list "(local_508._0_4_,local_4dc,5,local_37c,pbVar11)" (( "(") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (, ",") (identifier "local_4dc") (, ",") (number_literal "5") (, ",") (identifier "local_37c") (, ",") (identifier "pbVar11") () ")")))) (; ";")) (expression_statement "uVar20 = uVar23;" (assignment_expression "uVar20 = uVar23" (identifier "uVar20") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" (if "if") (parenthesized_expression "((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7))" (( "(") (binary_expression "(uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)" (parenthesized_expression "(uVar23 < uVar5)" (( "(") (binary_expression "uVar23 < uVar5" (identifier "uVar23") (< "<") (identifier "uVar5")) () ")")) (|| "||") (parenthesized_expression "(uVar20 = uVar5, uVar23 - uVar5 < 7)" (( "(") (comma_expression "uVar20 = uVar5, uVar23 - uVar5 < 7" (assignment_expression "uVar20 = uVar5" (identifier "uVar20") (= "=") (identifier "uVar5")) (, ",") (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" (identifier "uVar23") (- "-") (identifier "uVar5")) (< "<") (number_literal "7"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = uVar20;\n          uVar23 = uVar5 + 7;\n          if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }\n          if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }\n        }" ({ "{") (expression_statement "uVar5 = uVar20;" (assignment_expression "uVar5 = uVar20" (identifier "uVar5") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "uVar23 = uVar5 + 7;" (assignment_expression "uVar23 = uVar5 + 7" (identifier "uVar23") (= "=") (binary_expression "uVar5 + 7" (identifier "uVar5") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (0xff < uVar23) {\n            uVar23 = 0xff;\n          }" (if "if") (parenthesized_expression "(0xff < uVar23)" (( "(") (binary_expression "0xff < uVar23" (number_literal "0xff") (< "<") (identifier "uVar23")) () ")")) (compound_statement "{\n            uVar23 = 0xff;\n          }" ({ "{") (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" (identifier "uVar23") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (uVar23 - uVar5 < 7) {\n            uVar5 = uVar23 - 7;\n          }" (if "if") (parenthesized_expression "(uVar23 - uVar5 < 7)" (( "(") (binary_expression "uVar23 - uVar5 < 7" (binary_expression "uVar23 - uVar5" (identifier "uVar23") (- "-") (identifier "uVar5")) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n            uVar5 = uVar23 - 7;\n          }" ({ "{") (expression_statement "uVar5 = uVar23 - 7;" (assignment_expression "uVar5 = uVar23 - 7" (identifier "uVar5") (= "=") (binary_expression "uVar23 - 7" (identifier "uVar23") (- "-") (number_literal "7"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);" (assignment_expression "uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" (identifier "uVar20") (= "=") (call_expression "(*pcVar25)(uVar5,uVar23,7,local_37c,local_dc)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(uVar5,uVar23,7,local_37c,local_dc)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar23") (, ",") (number_literal "7") (, ",") (identifier "local_37c") (, ",") (identifier "local_dc") () ")")))) (; ";")) (if_statement "if (uVar20 < uVar12) {\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" (if "if") (parenthesized_expression "(uVar20 < uVar12)" (( "(") (binary_expression "uVar20 < uVar12" (identifier "uVar20") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n          pbVar10 = local_dc;\n          pbVar24 = pbVar11;\n          do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);\n        }" ({ "{") (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" (identifier "pbVar10") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "pbVar24 = pbVar11;" (assignment_expression "pbVar24 = pbVar11" (identifier "pbVar24") (= "=") (identifier "pbVar11")) (; ";")) (do_statement "do {\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          } while (abStack_cc != pbVar10);" (do "do") (compound_statement "{\n            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }\n            if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }\n            pbVar10 = pbVar10 + 1;\n            *pbVar24 = 9 - bVar1;\n            pbVar24 = pbVar24 + 1;\n          }" ({ "{") (while_statement "while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" (while "while") (parenthesized_expression "(bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0)" (( "(") (comma_expression "bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (, ",") (comma_expression "local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_508._0_4_ = uVar23" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "uVar23")) (, ",") (comma_expression "local_4dc = uVar5, bVar1 == 0" (assignment_expression "local_4dc = uVar5" (identifier "local_4dc") (= "=") (identifier "uVar5")) (, ",") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0"))))) () ")")) (compound_statement "{\n              *pbVar24 = 1;\nLAB_002177a8:\n              pbVar10 = pbVar10 + 1;\n              pbVar24 = pbVar24 + 1;\n              if (abStack_cc == pbVar10) goto LAB_002177d8;\n            }" ({ "{") (expression_statement "*pbVar24 = 1;" (assignment_expression "*pbVar24 = 1" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_002177a8:\n              pbVar10 = pbVar10 + 1;" (statement_identifier "LAB_002177a8") (: ":") (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (abStack_cc == pbVar10) goto LAB_002177d8;" (if "if") (parenthesized_expression "(abStack_cc == pbVar10)" (( "(") (binary_expression "abStack_cc == pbVar10" (identifier "abStack_cc") (== "==") (identifier "pbVar10")) () ")")) (goto_statement "goto LAB_002177d8;" (goto "goto") (statement_identifier "LAB_002177d8") (; ";"))) (} "}"))) (if_statement "if (bVar1 == 1) {\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" (if "if") (parenthesized_expression "(bVar1 == 1)" (( "(") (binary_expression "bVar1 == 1" (identifier "bVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *pbVar24 = 0;\n              goto LAB_002177a8;\n            }" ({ "{") (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_002177a8;" (goto "goto") (statement_identifier "LAB_002177a8") (; ";")) (} "}"))) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar24 = 9 - bVar1;" (assignment_expression "*pbVar24 = 9 - bVar1" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (binary_expression "9 - bVar1" (number_literal "9") (- "-") (identifier "bVar1"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(abStack_cc != pbVar10)" (( "(") (binary_expression "abStack_cc != pbVar10" (identifier "abStack_cc") (!= "!=") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_002177d8:\n        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" (statement_identifier "LAB_002177d8") (: ":") (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003a8fdc"))) () ")")) (argument_list "(param_1,local_508._0_4_ & 0xff)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_508._0_4_ & 0xff" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (& "&") (number_literal "0xff")) () ")"))) (; ";"))) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003a8fdc"))) () ")")) (argument_list "(param_1,local_4dc & 0xff)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_4dc & 0xff" (identifier "local_4dc") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (do_statement "do {\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        } while (local_dc != pbVar11);" (do "do") (compound_statement "{\n          uVar5 = 0;\n          uVar23 = 0;\n          pbVar10 = pbVar11;\n          do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);\n          pbVar11 = pbVar11 + 8;\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);\n          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);\n        }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" (identifier "pbVar10") (= "=") (identifier "pbVar11")) (; ";")) (do_statement "do {\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          } while (uVar5 != 0x18);" (do "do") (compound_statement "{\n            bVar1 = *pbVar10;\n            pbVar10 = pbVar10 + 1;\n            uVar20 = uVar5 & 0x1f;\n            uVar5 = uVar5 + 3;\n            uVar23 = uVar23 | (uint)bVar1 << uVar20;\n          }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar20 = uVar5 & 0x1f;" (assignment_expression "uVar20 = uVar5 & 0x1f" (identifier "uVar20") (= "=") (binary_expression "uVar5 & 0x1f" (identifier "uVar5") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar5 = uVar5 + 3;" (assignment_expression "uVar5 = uVar5 + 3" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 3" (identifier "uVar5") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar23 = uVar23 | (uint)bVar1 << uVar20;" (assignment_expression "uVar23 = uVar23 | (uint)bVar1 << uVar20" (identifier "uVar23") (= "=") (binary_expression "uVar23 | (uint)bVar1 << uVar20" (identifier "uVar23") (| "|") (binary_expression "(uint)bVar1 << uVar20" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (identifier "uVar20")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0x18)" (( "(") (binary_expression "uVar5 != 0x18" (identifier "uVar5") (!= "!=") (number_literal "0x18")) () ")")) (; ";")) (expression_statement "pbVar11 = pbVar11 + 8;" (assignment_expression "pbVar11 = pbVar11 + 8" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 8" (identifier "pbVar11") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003a8fdc"))) () ")")) (argument_list "(param_1,uVar23 & 0xff)" (( "(") (identifier "param_1") (, ",") (binary_expression "uVar23 & 0xff" (identifier "uVar23") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003a8fdc"))) () ")")) (argument_list "(param_1,(uVar23 << 0x10) >> 0x18)" (( "(") (identifier "param_1") (, ",") (binary_expression "(uVar23 << 0x10) >> 0x18" (parenthesized_expression "(uVar23 << 0x10)" (( "(") (binary_expression "uVar23 << 0x10" (identifier "uVar23") (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x18")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);" (call_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003a8fdc)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003a8fdc" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003a8fdc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003a8fdc"))) () ")")) (argument_list "(param_1,(uVar23 << 8) >> 0x18)" (( "(") (identifier "param_1") (, ",") (binary_expression "(uVar23 << 8) >> 0x18" (parenthesized_expression "(uVar23 << 8)" (( "(") (binary_expression "uVar23 << 8" (identifier "uVar23") (<< "<<") (number_literal "8")) () ")")) (>> ">>") (number_literal "0x18")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_dc != pbVar11)" (( "(") (binary_expression "local_dc != pbVar11" (identifier "local_dc") (!= "!=") (identifier "pbVar11")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" (else "else") (compound_statement "{\n        uVar23 = 0;\n        unaff_s0 = (byte *)0x0;\n        iVar26 = 0;\n        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        uVar5 = 0xff;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n        uVar20 = 0xff;\n        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);\n        local_4dc = 0;\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);\n        pfVar22 = unaff_s2;\n        do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);\n        if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }\n        if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }\n      }" ({ "{") (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s0 = (byte *)0x0;" (assignment_expression "unaff_s0 = (byte *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (expression_statement "uVar5 = 0xff;" (assignment_expression "uVar5 = 0xff" (identifier "uVar5") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar51") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" (identifier "uVar20") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (identifier "fVar49") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a94")) () ")"))))) (; ";")) (expression_statement "local_4dc = 0;" (assignment_expression "local_4dc = 0" (identifier "local_4dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar50") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e5c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e5c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e5c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e5c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e5c")) () ")"))))) (; ";")) (expression_statement "pfVar22 = unaff_s2;" (assignment_expression "pfVar22 = unaff_s2" (identifier "pfVar22") (= "=") (identifier "unaff_s2")) (; ";")) (do_statement "do {\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        } while (iVar26 != local_4e4);" (do "do") (compound_statement "{\n          if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }\n          iVar26 = iVar26 + 1;\n          pfVar22 = pfVar22 + 4;\n        }" ({ "{") (if_statement "if (0 < (int)local_508._0_4_) {\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" (if "if") (parenthesized_expression "(0 < (int)local_508._0_4_)" (( "(") (binary_expression "0 < (int)local_508._0_4_" (number_literal "0") (< "<") (cast_expression "(int)local_508._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")))) () ")")) (compound_statement "{\n            dVar36 = *(double *)(puVar9 + 0x1400);\n            dVar42 = *(double *)(local_50c + -0x5af0);\n            dVar38 = *(double *)(puVar9 + 0x1410);\n            iVar19 = *(int *)(param_1 + 0x2c0) * 4;\n            iVar14 = *(int *)(param_1 + 0x2d0);\n            dVar40 = *(double *)(local_4e8 + -0x5ae8);\n            puVar7 = local_37c + iVar26 * 4;\n            iVar16 = iVar6;\n            pfVar18 = pfVar22;\n            do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);\n            iVar6 = iVar19 * local_508._0_4_ + iVar6;\n          }" ({ "{") (expression_statement "dVar36 = *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar36 = *(double *)(puVar9 + 0x1400)" (identifier "dVar36") (= "=") (pointer_expression "*(double *)(puVar9 + 0x1400)" (* "*") (cast_expression "(double *)(puVar9 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1400)" (( "(") (binary_expression "puVar9 + 0x1400" (identifier "puVar9") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar42 = *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar42 = *(double *)(local_50c + -0x5af0)" (identifier "dVar42") (= "=") (pointer_expression "*(double *)(local_50c + -0x5af0)" (* "*") (cast_expression "(double *)(local_50c + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50c + -0x5af0)" (( "(") (binary_expression "local_50c + -0x5af0" (identifier "local_50c") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar38 = *(double *)(puVar9 + 0x1410)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(puVar9 + 0x1410)" (* "*") (cast_expression "(double *)(puVar9 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1410)" (( "(") (binary_expression "puVar9 + 0x1410" (identifier "puVar9") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "iVar19 = *(int *)(param_1 + 0x2c0) * 4" (identifier "iVar19") (= "=") (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"))) (; ";")) (expression_statement "iVar14 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x2d0)" (identifier "iVar14") (= "=") (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 "dVar40 = *(double *)(local_4e8 + -0x5ae8);" (assignment_expression "dVar40 = *(double *)(local_4e8 + -0x5ae8)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" (* "*") (cast_expression "(double *)(local_4e8 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4e8 + -0x5ae8)" (( "(") (binary_expression "local_4e8 + -0x5ae8" (identifier "local_4e8") (+ "+") (number_literal "-0x5ae8")) () ")"))))) (; ";")) (expression_statement "puVar7 = local_37c + iVar26 * 4;" (assignment_expression "puVar7 = local_37c + iVar26 * 4" (identifier "puVar7") (= "=") (binary_expression "local_37c + iVar26 * 4" (identifier "local_37c") (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" (identifier "iVar16") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "pfVar18 = pfVar22;" (assignment_expression "pfVar18 = pfVar22" (identifier "pfVar18") (= "=") (identifier "pfVar22")) (; ";")) (do_statement "do {\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            } while (pfVar22 + local_508._0_4_ != pfVar18);" (do "do") (compound_statement "{\n              if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }\n              *puVar7 = uVar12;\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);\n              fVar43 = 0.0;\n              if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);\n              fVar34 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);\n              fVar48 = 0.0;\n              if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }\n              fVar29 = *(float *)(puVar3 + -0x5a8c);\n              if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }\n              iVar16 = iVar16 + iVar19;\n              if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }\n              *pfVar18 = (float)unaff_s0;\n              local_2fc[(int)unaff_s0 * 4] = fVar43;\n              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;\n              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;\n              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;\n              unaff_s0 = unaff_s0 + 1;\nLAB_002164d0:\n              pfVar18 = pfVar18 + 1;\n              puVar7 = puVar7 + 1;\n            }" ({ "{") (if_statement "if (param_2 == 0x35545844) {\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                uVar12 = 0xff;\n              }" (if "if") (parenthesized_expression "(param_2 == 0x35545844)" (( "(") (binary_expression "param_2 == 0x35545844" (identifier "param_2") (== "==") (number_literal "0x35545844")) () ")")) (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }\n                else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (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 "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00216c58:\n                  uVar12 = 0xff;\n                  uVar23 = 0xff;\n                }" ({ "{") (labeled_statement "LAB_00216c58:\n                  uVar12 = 0xff;" (statement_identifier "LAB_00216c58") (: ":") (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" (identifier "uVar12") (= "=") (number_literal "0xff")) (; ";"))) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" (identifier "uVar23") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" (else "else") (compound_statement "{\n                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);\n                  if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (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 "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar43 <= 0.0) {\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }\n                  else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar43 <= 0.0)" (( "(") (binary_expression "fVar43 <= 0.0" (identifier "fVar43") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar12 = 0;\n                    uVar5 = 0;\n                  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar27 = (double)fVar43 / dVar42;\n                    if (dVar40 <= dVar27) goto LAB_00216c58;\n                    dVar27 = dVar27 + dVar36;\n                    if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }\n                    uVar12 = (int)dVar27 & 0xff;\n                    if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }\n                    if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }\n                    if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }\n                  }" ({ "{") (expression_statement "dVar27 = (double)fVar43 / dVar42;" (assignment_expression "dVar27 = (double)fVar43 / dVar42" (identifier "dVar27") (= "=") (binary_expression "(double)fVar43 / dVar42" (cast_expression "(double)fVar43" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar43")) (/ "/") (identifier "dVar42"))) (; ";")) (if_statement "if (dVar40 <= dVar27) goto LAB_00216c58;" (if "if") (parenthesized_expression "(dVar40 <= dVar27)" (( "(") (binary_expression "dVar40 <= dVar27" (identifier "dVar40") (<= "<=") (identifier "dVar27")) () ")")) (goto_statement "goto LAB_00216c58;" (goto "goto") (statement_identifier "LAB_00216c58") (; ";"))) (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" (identifier "dVar27") (= "=") (binary_expression "dVar27 + dVar36" (identifier "dVar27") (+ "+") (identifier "dVar36"))) (; ";")) (if_statement "if (dVar38 <= dVar27) {\n                      dVar27 = dVar27 - dVar38;\n                    }" (if "if") (parenthesized_expression "(dVar38 <= dVar27)" (( "(") (binary_expression "dVar38 <= dVar27" (identifier "dVar38") (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n                      dVar27 = dVar27 - dVar38;\n                    }" ({ "{") (expression_statement "dVar27 = dVar27 - dVar38;" (assignment_expression "dVar27 = dVar27 - dVar38" (identifier "dVar27") (= "=") (binary_expression "dVar27 - dVar38" (identifier "dVar27") (- "-") (identifier "dVar38"))) (; ";")) (} "}"))) (expression_statement "uVar12 = (int)dVar27 & 0xff;" (assignment_expression "uVar12 = (int)dVar27 & 0xff" (identifier "uVar12") (= "=") (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar12 < uVar5) {\n                      uVar5 = uVar12;\n                    }" (if "if") (parenthesized_expression "(uVar12 < uVar5)" (( "(") (binary_expression "uVar12 < uVar5" (identifier "uVar12") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n                      uVar5 = uVar12;\n                    }" ({ "{") (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" (identifier "uVar5") (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if (uVar23 < uVar12) {\n                      uVar23 = uVar12;\n                    }" (if "if") (parenthesized_expression "(uVar23 < uVar12)" (( "(") (binary_expression "uVar23 < uVar12" (identifier "uVar23") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n                      uVar23 = uVar12;\n                    }" ({ "{") (expression_statement "uVar23 = uVar12;" (assignment_expression "uVar23 = uVar12" (identifier "uVar23") (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if (uVar12 != 0) {\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }\n                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }\n                    }" ({ "{") (if_statement "if (uVar12 < uVar20) {\n                        uVar20 = uVar12;\n                      }" (if "if") (parenthesized_expression "(uVar12 < uVar20)" (( "(") (binary_expression "uVar12 < uVar20" (identifier "uVar12") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n                        uVar20 = uVar12;\n                      }" ({ "{") (expression_statement "uVar20 = uVar12;" (assignment_expression "uVar20 = uVar12" (identifier "uVar20") (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if ((uVar12 != 0xff) && (local_4dc < uVar12)) {\n                        local_4dc = uVar12;\n                      }" (if "if") (parenthesized_expression "((uVar12 != 0xff) && (local_4dc < uVar12))" (( "(") (binary_expression "(uVar12 != 0xff) && (local_4dc < uVar12)" (parenthesized_expression "(uVar12 != 0xff)" (( "(") (binary_expression "uVar12 != 0xff" (identifier "uVar12") (!= "!=") (number_literal "0xff")) () ")")) (&& "&&") (parenthesized_expression "(local_4dc < uVar12)" (( "(") (binary_expression "local_4dc < uVar12" (identifier "local_4dc") (< "<") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\n                        local_4dc = uVar12;\n                      }" ({ "{") (expression_statement "local_4dc = uVar12;" (assignment_expression "local_4dc = uVar12" (identifier "local_4dc") (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n                uVar12 = 0xff;\n              }" (else "else") (compound_statement "{\n                uVar12 = 0xff;\n              }" ({ "{") (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" (identifier "uVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "*puVar7 = uVar12;" (assignment_expression "*puVar7 = uVar12" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 8) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar14 + 8) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" (identifier "fVar43") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if ((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" (if "if") (parenthesized_expression "((0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40))" (( "(") (binary_expression "(0.0 < fVar29) &&\n                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" (parenthesized_expression "(0.0 < fVar29)" (( "(") (binary_expression "0.0 < fVar29" (number_literal "0.0") (< "<") (identifier "fVar29")) () ")")) (&& "&&") (parenthesized_expression "(dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)" (( "(") (comma_expression "dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "dVar27 = (double)fVar29 / dVar42" (identifier "dVar27") (= "=") (binary_expression "(double)fVar29 / dVar42" (cast_expression "(double)fVar29" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar29")) (/ "/") (identifier "dVar42"))) (, ",") (comma_expression "fVar43 = fVar28, dVar27 < dVar40" (assignment_expression "fVar43 = fVar28" (identifier "fVar43") (= "=") (identifier "fVar28")) (, ",") (binary_expression "dVar27 < dVar40" (identifier "dVar27") (< "<") (identifier "dVar40")))) () ")"))) () ")")) (compound_statement "{\n                dVar27 = dVar27 + dVar36;\n                if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }\n                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;\n              }" ({ "{") (expression_statement "dVar27 = dVar27 + dVar36;" (assignment_expression "dVar27 = dVar27 + dVar36" (identifier "dVar27") (= "=") (binary_expression "dVar27 + dVar36" (identifier "dVar27") (+ "+") (identifier "dVar36"))) (; ";")) (if_statement "if (dVar51 <= dVar27) {\n                  dVar27 = dVar27 - dVar51;\n                }" (if "if") (parenthesized_expression "(dVar51 <= dVar27)" (( "(") (binary_expression "dVar51 <= dVar27" (identifier "dVar51") (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n                  dVar27 = dVar27 - dVar51;\n                }" ({ "{") (expression_statement "dVar27 = dVar27 - dVar51;" (assignment_expression "dVar27 = dVar27 - dVar51" (identifier "dVar27") (= "=") (binary_expression "dVar27 - dVar51" (identifier "dVar27") (- "-") (identifier "dVar51"))) (; ";")) (} "}"))) (expression_statement "fVar43 = (float)((int)dVar27 & 0xff) / fVar49;" (assignment_expression "fVar43 = (float)((int)dVar27 & 0xff) / fVar49" (identifier "fVar43") (= "=") (binary_expression "(float)((int)dVar27 & 0xff) / fVar49" (cast_expression "(float)((int)dVar27 & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)dVar27 & 0xff)" (( "(") (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (identifier "fVar49"))) (; ";")) (} "}"))) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x14) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar14 + 0x14) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar14 + 0x14) * 4" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" (identifier "fVar34") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < fVar29)" (( "(") (binary_expression "0.0 < fVar29" (number_literal "0.0") (< "<") (identifier "fVar29")) () ")")) (compound_statement "{\n                dVar27 = (double)fVar29 / local_500;\n                fVar34 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" ({ "{") (expression_statement "dVar27 = (double)fVar29 / local_500;" (assignment_expression "dVar27 = (double)fVar29 / local_500" (identifier "dVar27") (= "=") (binary_expression "(double)fVar29 / local_500" (cast_expression "(double)fVar29" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar29")) (/ "/") (identifier "local_500"))) (; ";")) (expression_statement "fVar34 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar34 = *(float *)(puVar3 + -0x5a8c)" (identifier "fVar34") (= "=") (pointer_expression "*(float *)(puVar3 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar3 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5a8c)" (( "(") (binary_expression "puVar3 + -0x5a8c" (identifier "puVar3") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (dVar27 < local_4f8) {\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" (if "if") (parenthesized_expression "(dVar27 < local_4f8)" (( "(") (binary_expression "dVar27 < local_4f8" (identifier "dVar27") (< "<") (identifier "local_4f8")) () ")")) (compound_statement "{\n                  dVar27 = dVar27 + dVar50;\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" ({ "{") (expression_statement "dVar27 = dVar27 + dVar50;" (assignment_expression "dVar27 = dVar27 + dVar50" (identifier "dVar27") (= "=") (binary_expression "dVar27 + dVar50" (identifier "dVar27") (+ "+") (identifier "dVar50"))) (; ";")) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" (if "if") (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" (( "(") (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" (* "*") (cast_expression "(double *)(puVar9 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1410)" (( "(") (binary_expression "puVar9 + 0x1410" (identifier "puVar9") (+ "+") (number_literal "0x1410")) () ")")))) (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" ({ "{") (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" (identifier "dVar27") (= "=") (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" (identifier "dVar27") (- "-") (pointer_expression "*(double *)(puVar9 + 0x1410)" (* "*") (cast_expression "(double *)(puVar9 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1410)" (( "(") (binary_expression "puVar9 + 0x1410" (identifier "puVar9") (+ "+") (number_literal "0x1410")) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (identifier "fVar34") (= "=") (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)dVar27 & 0xff)" (( "(") (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (pointer_expression "*(float *)(puVar3 + -0x5a94)" (* "*") (cast_expression "(float *)(puVar3 + -0x5a94)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5a94)" (( "(") (binary_expression "puVar3 + -0x5a94" (identifier "puVar3") (+ "+") (number_literal "-0x5a94")) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);" (assignment_expression "fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + *(int *)(iVar14 + 0x20) * 4)" (( "(") (binary_expression "iVar16 + *(int *)(iVar14 + 0x20) * 4" (identifier "iVar16") (+ "+") (binary_expression "*(int *)(iVar14 + 0x20) * 4" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" (identifier "fVar48") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (0.0 < fVar29) {\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < fVar29)" (( "(") (binary_expression "0.0 < fVar29" (number_literal "0.0") (< "<") (identifier "fVar29")) () ")")) (compound_statement "{\n                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);\n                fVar48 = *(float *)(puVar3 + -0x5a8c);\n                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }\n              }" ({ "{") (expression_statement "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);" (assignment_expression "dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0)" (identifier "dVar27") (= "=") (binary_expression "(double)fVar29 / *(double *)(local_50c + -0x5af0)" (cast_expression "(double)fVar29" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar29")) (/ "/") (pointer_expression "*(double *)(local_50c + -0x5af0)" (* "*") (cast_expression "(double *)(local_50c + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50c + -0x5af0)" (( "(") (binary_expression "local_50c + -0x5af0" (identifier "local_50c") (+ "+") (number_literal "-0x5af0")) () ")")))))) (; ";")) (expression_statement "fVar48 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar48 = *(float *)(puVar3 + -0x5a8c)" (identifier "fVar48") (= "=") (pointer_expression "*(float *)(puVar3 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar3 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5a8c)" (( "(") (binary_expression "puVar3 + -0x5a8c" (identifier "puVar3") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" (if "if") (parenthesized_expression "(dVar27 < *(double *)(local_4e8 + -0x5ae8))" (( "(") (binary_expression "dVar27 < *(double *)(local_4e8 + -0x5ae8)" (identifier "dVar27") (< "<") (pointer_expression "*(double *)(local_4e8 + -0x5ae8)" (* "*") (cast_expression "(double *)(local_4e8 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4e8 + -0x5ae8)" (( "(") (binary_expression "local_4e8 + -0x5ae8" (identifier "local_4e8") (+ "+") (number_literal "-0x5ae8")) () ")"))))) () ")")) (compound_statement "{\n                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);\n                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }\n                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);\n                }" ({ "{") (expression_statement "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);" (assignment_expression "dVar27 = dVar27 + *(double *)(puVar9 + 0x1400)" (identifier "dVar27") (= "=") (binary_expression "dVar27 + *(double *)(puVar9 + 0x1400)" (identifier "dVar27") (+ "+") (pointer_expression "*(double *)(puVar9 + 0x1400)" (* "*") (cast_expression "(double *)(puVar9 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1400)" (( "(") (binary_expression "puVar9 + 0x1400" (identifier "puVar9") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (*(double *)(puVar9 + 0x1410) <= dVar27) {\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" (if "if") (parenthesized_expression "(*(double *)(puVar9 + 0x1410) <= dVar27)" (( "(") (binary_expression "*(double *)(puVar9 + 0x1410) <= dVar27" (pointer_expression "*(double *)(puVar9 + 0x1410)" (* "*") (cast_expression "(double *)(puVar9 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1410)" (( "(") (binary_expression "puVar9 + 0x1410" (identifier "puVar9") (+ "+") (number_literal "0x1410")) () ")")))) (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);\n                  }" ({ "{") (expression_statement "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);" (assignment_expression "dVar27 = dVar27 - *(double *)(puVar9 + 0x1410)" (identifier "dVar27") (= "=") (binary_expression "dVar27 - *(double *)(puVar9 + 0x1410)" (identifier "dVar27") (- "-") (pointer_expression "*(double *)(puVar9 + 0x1410)" (* "*") (cast_expression "(double *)(puVar9 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1410)" (( "(") (binary_expression "puVar9 + 0x1410" (identifier "puVar9") (+ "+") (number_literal "0x1410")) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);" (assignment_expression "fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (identifier "fVar48") (= "=") (binary_expression "(float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94)" (cast_expression "(float)((int)dVar27 & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)dVar27 & 0xff)" (( "(") (binary_expression "(int)dVar27 & 0xff" (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (pointer_expression "*(float *)(puVar3 + -0x5a94)" (* "*") (cast_expression "(float *)(puVar3 + -0x5a94)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5a94)" (( "(") (binary_expression "puVar3 + -0x5a94" (identifier "puVar3") (+ "+") (number_literal "-0x5a94")) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "fVar29 = *(float *)(puVar3 + -0x5a8c);" (assignment_expression "fVar29 = *(float *)(puVar3 + -0x5a8c)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(puVar3 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar3 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x5a8c)" (( "(") (binary_expression "puVar3 + -0x5a8c" (identifier "puVar3") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (param_4 != 0) {\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                fVar29 = (float)(uVar12 + 1) * fVar47;\n              }" ({ "{") (expression_statement "fVar29 = (float)(uVar12 + 1) * fVar47;" (assignment_expression "fVar29 = (float)(uVar12 + 1) * fVar47" (identifier "fVar29") (= "=") (binary_expression "(float)(uVar12 + 1) * fVar47" (cast_expression "(float)(uVar12 + 1)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar12 + 1)" (( "(") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1")) () ")"))) (* "*") (identifier "fVar47"))) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar16 + iVar19;" (assignment_expression "iVar16 = iVar16 + iVar19" (identifier "iVar16") (= "=") (binary_expression "iVar16 + iVar19" (identifier "iVar16") (+ "+") (identifier "iVar19"))) (; ";")) (if_statement "if (0 < (int)unaff_s0) {\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" (if "if") (parenthesized_expression "(0 < (int)unaff_s0)" (( "(") (binary_expression "0 < (int)unaff_s0" (number_literal "0") (< "<") (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0"))) () ")")) (compound_statement "{\n                pbVar11 = (byte *)0x0;\n                pfVar8 = unaff_s4;\n                do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);\n              }" ({ "{") (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pfVar8 = unaff_s4;" (assignment_expression "pfVar8 = unaff_s4" (identifier "pfVar8") (= "=") (identifier "unaff_s4")) (; ";")) (do_statement "do {\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                } while (pbVar11 != unaff_s0);" (do "do") (compound_statement "{\n                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }\n                  pbVar11 = pbVar11 + 1;\n                  pfVar8 = pfVar8 + 4;\n                }" ({ "{") (if_statement "if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" (if "if") (parenthesized_expression "((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844))))" (( "(") (binary_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&\n                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))" (parenthesized_expression "(((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48))" (( "(") (binary_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)" (parenthesized_expression "((*pfVar8 == fVar43) && (pfVar8[1] == fVar34))" (( "(") (binary_expression "(*pfVar8 == fVar43) && (pfVar8[1] == fVar34)" (parenthesized_expression "(*pfVar8 == fVar43)" (( "(") (binary_expression "*pfVar8 == fVar43" (pointer_expression "*pfVar8" (* "*") (identifier "pfVar8")) (== "==") (identifier "fVar43")) () ")")) (&& "&&") (parenthesized_expression "(pfVar8[1] == fVar34)" (( "(") (binary_expression "pfVar8[1] == fVar34" (subscript_expression "pfVar8[1]" (identifier "pfVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "fVar34")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pfVar8[2] == fVar48)" (( "(") (binary_expression "pfVar8[2] == fVar48" (subscript_expression "pfVar8[2]" (identifier "pfVar8") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "fVar48")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((char)uVar12 < '\0' || (param_2 == 0x35545844)))" (( "(") (parenthesized_expression "((char)uVar12 < '\0' || (param_2 == 0x35545844))" (( "(") (binary_expression "(char)uVar12 < '\0' || (param_2 == 0x35545844)" (binary_expression "(char)uVar12 < '\0'" (cast_expression "(char)uVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar12")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(param_2 == 0x35545844)" (( "(") (binary_expression "param_2 == 0x35545844" (identifier "param_2") (== "==") (number_literal "0x35545844")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    *pfVar18 = (float)pbVar11;\n                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;\n                    goto LAB_002164d0;\n                  }" ({ "{") (expression_statement "*pfVar18 = (float)pbVar11;" (assignment_expression "*pfVar18 = (float)pbVar11" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (= "=") (cast_expression "(float)pbVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "pbVar11"))) (; ";")) (expression_statement "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;" (assignment_expression "local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" (identifier "local_2fc") ([ "[") (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")) (= "=") (binary_expression "local_2fc[(int)pbVar11 * 4 + 3] + fVar29" (subscript_expression "local_2fc[(int)pbVar11 * 4 + 3]" (identifier "local_2fc") ([ "[") (binary_expression "(int)pbVar11 * 4 + 3" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")) (+ "+") (identifier "fVar29"))) (; ";")) (goto_statement "goto LAB_002164d0;" (goto "goto") (statement_identifier "LAB_002164d0") (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar8 = pfVar8 + 4;" (assignment_expression "pfVar8 = pfVar8 + 4" (identifier "pfVar8") (= "=") (binary_expression "pfVar8 + 4" (identifier "pfVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar11 != unaff_s0)" (( "(") (binary_expression "pbVar11 != unaff_s0" (identifier "pbVar11") (!= "!=") (identifier "unaff_s0")) () ")")) (; ";")) (} "}"))) (expression_statement "*pfVar18 = (float)unaff_s0;" (assignment_expression "*pfVar18 = (float)unaff_s0" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (= "=") (cast_expression "(float)unaff_s0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "unaff_s0"))) (; ";")) (expression_statement "local_2fc[(int)unaff_s0 * 4] = fVar43;" (assignment_expression "local_2fc[(int)unaff_s0 * 4] = fVar43" (subscript_expression "local_2fc[(int)unaff_s0 * 4]" (identifier "local_2fc") ([ "[") (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4")) (] "]")) (= "=") (identifier "fVar43")) (; ";")) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 1] = fVar34" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 1]" (identifier "local_2fc") ([ "[") (binary_expression "(int)unaff_s0 * 4 + 1" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (] "]")) (= "=") (identifier "fVar34")) (; ";")) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 2] = fVar48" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 2]" (identifier "local_2fc") ([ "[") (binary_expression "(int)unaff_s0 * 4 + 2" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "fVar48")) (; ";")) (expression_statement "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;" (assignment_expression "local_2fc[(int)unaff_s0 * 4 + 3] = fVar29" (subscript_expression "local_2fc[(int)unaff_s0 * 4 + 3]" (identifier "local_2fc") ([ "[") (binary_expression "(int)unaff_s0 * 4 + 3" (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")) (= "=") (identifier "fVar29")) (; ";")) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" (identifier "unaff_s0") (= "=") (binary_expression "unaff_s0 + 1" (identifier "unaff_s0") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_002164d0:\n              pfVar18 = pfVar18 + 1;" (statement_identifier "LAB_002164d0") (: ":") (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" (identifier "pfVar18") (= "=") (binary_expression "pfVar18 + 1" (identifier "pfVar18") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pfVar22 + local_508._0_4_ != pfVar18)" (( "(") (binary_expression "pfVar22 + local_508._0_4_ != pfVar18" (binary_expression "pfVar22 + local_508._0_4_" (identifier "pfVar22") (+ "+") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_"))) (!= "!=") (identifier "pfVar18")) () ")")) (; ";")) (expression_statement "iVar6 = iVar19 * local_508._0_4_ + iVar6;" (assignment_expression "iVar6 = iVar19 * local_508._0_4_ + iVar6" (identifier "iVar6") (= "=") (binary_expression "iVar19 * local_508._0_4_ + iVar6" (binary_expression "iVar19 * local_508._0_4_" (identifier "iVar19") (* "*") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_"))) (+ "+") (identifier "iVar6"))) (; ";")) (} "}"))) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar22 + 4" (identifier "pfVar22") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar26 != local_4e4)" (( "(") (binary_expression "iVar26 != local_4e4" (identifier "iVar26") (!= "!=") (identifier "local_4e4")) () ")")) (; ";")) (if_statement "if (0 < (int)unaff_s0) {\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" (if "if") (parenthesized_expression "(0 < (int)unaff_s0)" (( "(") (binary_expression "0 < (int)unaff_s0" (number_literal "0") (< "<") (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0"))) () ")")) (compound_statement "{\n          uVar39 = 0;\n          pfVar18 = local_2fc + 3;\n          pfVar22 = pfVar18 + (int)unaff_s0 * 4;\n          do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);\n        }" ({ "{") (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "pfVar18 = local_2fc + 3;" (assignment_expression "pfVar18 = local_2fc + 3" (identifier "pfVar18") (= "=") (binary_expression "local_2fc + 3" (identifier "local_2fc") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pfVar22 = pfVar18 + (int)unaff_s0 * 4;" (assignment_expression "pfVar22 = pfVar18 + (int)unaff_s0 * 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar18 + (int)unaff_s0 * 4" (identifier "pfVar18") (+ "+") (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          } while (pfVar22 != pfVar18);" (do "do") (compound_statement "{\n            fVar28 = SQRT(*pfVar18);\n            if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }\n            *pfVar18 = fVar28;\n            pfVar18 = pfVar18 + 4;\n          }" ({ "{") (expression_statement "fVar28 = SQRT(*pfVar18);" (assignment_expression "fVar28 = SQRT(*pfVar18)" (identifier "fVar28") (= "=") (call_expression "SQRT(*pfVar18)" (identifier "SQRT") (argument_list "(*pfVar18)" (( "(") (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) () ")")))) (; ";")) (if_statement "if (*pfVar18 < (float)uVar39) {\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" (if "if") (parenthesized_expression "(*pfVar18 < (float)uVar39)" (( "(") (binary_expression "*pfVar18 < (float)uVar39" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (< "<") (cast_expression "(float)uVar39" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar39"))) () ")")) (compound_statement "{\n              (*(code *)PTR_sqrtf_003a9800)();\n            }" ({ "{") (expression_statement "(*(code *)PTR_sqrtf_003a9800)();" (call_expression "(*(code *)PTR_sqrtf_003a9800)()" (parenthesized_expression "(*(code *)PTR_sqrtf_003a9800)" (( "(") (pointer_expression "*(code *)PTR_sqrtf_003a9800" (* "*") (cast_expression "(code *)PTR_sqrtf_003a9800" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqrtf_003a9800"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*pfVar18 = fVar28;" (assignment_expression "*pfVar18 = fVar28" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (= "=") (identifier "fVar28")) (; ";")) (expression_statement "pfVar18 = pfVar18 + 4;" (assignment_expression "pfVar18 = pfVar18 + 4" (identifier "pfVar18") (= "=") (binary_expression "pfVar18 + 4" (identifier "pfVar18") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pfVar22 != pfVar18)" (( "(") (binary_expression "pfVar22 != pfVar18" (identifier "pfVar22") (!= "!=") (identifier "pfVar18")) () ")")) (; ";")) (} "}"))) (if_statement "if (param_2 == 0x35545844) {\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" (if "if") (parenthesized_expression "(param_2 == 0x35545844)" (( "(") (binary_expression "param_2 == 0x35545844" (identifier "param_2") (== "==") (number_literal "0x35545844")) () ")")) (compound_statement "{\n          local_508._0_4_ = local_4dc;\n          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }\n          goto LAB_002176f8;\n        }" ({ "{") (expression_statement "local_508._0_4_ = local_4dc;" (assignment_expression "local_508._0_4_ = local_4dc" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "local_4dc")) (; ";")) (if_statement "if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" (if "if") (parenthesized_expression "((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5))" (( "(") (binary_expression "(local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" (parenthesized_expression "(local_4dc < uVar20)" (( "(") (binary_expression "local_4dc < uVar20" (identifier "local_4dc") (< "<") (identifier "uVar20")) () ")")) (|| "||") (parenthesized_expression "(local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)" (( "(") (comma_expression "local_508._0_4_ = uVar20, local_4dc - uVar20 < 5" (assignment_expression "local_508._0_4_ = uVar20" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "uVar20")) (, ",") (binary_expression "local_4dc - uVar20 < 5" (binary_expression "local_4dc - uVar20" (identifier "local_4dc") (- "-") (identifier "uVar20")) (< "<") (number_literal "5"))) () ")"))) () ")")) (compound_statement "{\n            local_4dc = local_508._0_4_ + 5;\n            if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }\n            if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }\n          }" ({ "{") (expression_statement "local_4dc = local_508._0_4_ + 5;" (assignment_expression "local_4dc = local_508._0_4_ + 5" (identifier "local_4dc") (= "=") (binary_expression "local_508._0_4_ + 5" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (0xff < local_4dc) {\n              local_4dc = 0xff;\n            }" (if "if") (parenthesized_expression "(0xff < local_4dc)" (( "(") (binary_expression "0xff < local_4dc" (number_literal "0xff") (< "<") (identifier "local_4dc")) () ")")) (compound_statement "{\n              local_4dc = 0xff;\n            }" ({ "{") (expression_statement "local_4dc = 0xff;" (assignment_expression "local_4dc = 0xff" (identifier "local_4dc") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (local_4dc - local_508._0_4_ < 5) {\n              local_508._0_4_ = local_4dc - 5;\n            }" (if "if") (parenthesized_expression "(local_4dc - local_508._0_4_ < 5)" (( "(") (binary_expression "local_4dc - local_508._0_4_ < 5" (binary_expression "local_4dc - local_508._0_4_" (identifier "local_4dc") (- "-") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_"))) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n              local_508._0_4_ = local_4dc - 5;\n            }" ({ "{") (expression_statement "local_508._0_4_ = local_4dc - 5;" (assignment_expression "local_508._0_4_ = local_4dc - 5" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "local_4dc - 5" (identifier "local_4dc") (- "-") (number_literal "5"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_002176f8;" (goto "goto") (statement_identifier "LAB_002176f8") (; ";")) (} "}"))) (} "}")))) (expression_statement "unaff_s3 = unaff_s0;" (assignment_expression "unaff_s3 = unaff_s0" (identifier "unaff_s3") (= "=") (identifier "unaff_s0")) (; ";")) (if_statement "if (unaff_s0 != (byte *)0x1) {\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(unaff_s0 != (byte *)0x1)" (( "(") (binary_expression "unaff_s0 != (byte *)0x1" (identifier "unaff_s0") (!= "!=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        local_474 = 0.0;\n        local_478 = 0.0;\n        local_47c = 0.0;\n        local_480 = 0.0;\n        local_484 = 0.0;\n        local_488 = 0.0;\n        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;\n        fVar47 = 0.0;\n        fVar49 = 0.0;\n        fVar43 = 0.0;\n        fVar28 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);\n        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }\n        fVar46 = 0.0;\n        fVar44 = 0.0;\n        fVar48 = 0.0;\n        fVar28 = 0.0;\n        fVar34 = 0.0;\n        fVar29 = 0.0;\n        pfVar22 = unaff_s4;\n        do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );\n      }" ({ "{") (expression_statement "local_474 = 0.0;" (assignment_expression "local_474 = 0.0" (identifier "local_474") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_478 = 0.0;" (assignment_expression "local_478 = 0.0" (identifier "local_478") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_47c = 0.0;" (assignment_expression "local_47c = 0.0" (identifier "local_47c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_480 = 0.0;" (assignment_expression "local_480 = 0.0" (identifier "local_480") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_484 = 0.0;" (assignment_expression "local_484 = 0.0" (identifier "local_484") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_488 = 0.0;" (assignment_expression "local_488 = 0.0" (identifier "local_488") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;" (if "if") (parenthesized_expression "(unaff_s0 == (byte *)0x0)" (( "(") (binary_expression "unaff_s0 == (byte *)0x0" (identifier "unaff_s0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0021703c;" (goto "goto") (statement_identifier "LAB_0021703c") (; ";"))) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" (identifier "fVar47") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" (identifier "fVar49") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" (identifier "fVar43") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" (identifier "fVar28") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" (identifier "pfVar22") (= "=") (identifier "unaff_s4")) (; ";")) (do_statement "do {\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);" (do "do") (compound_statement "{\n          fVar29 = pfVar22[3];\n          pfVar18 = pfVar22 + 4;\n          fVar28 = fVar28 + fVar29;\n          fVar43 = fVar29 * *pfVar22 + fVar43;\n          fVar49 = fVar29 * pfVar22[1] + fVar49;\n          fVar47 = fVar29 * pfVar22[2] + fVar47;\n          pfVar22 = pfVar18;\n        }" ({ "{") (expression_statement "fVar29 = pfVar22[3];" (assignment_expression "fVar29 = pfVar22[3]" (identifier "fVar29") (= "=") (subscript_expression "pfVar22[3]" (identifier "pfVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" (identifier "pfVar18") (= "=") (binary_expression "pfVar22 + 4" (identifier "pfVar22") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar28 = fVar28 + fVar29;" (assignment_expression "fVar28 = fVar28 + fVar29" (identifier "fVar28") (= "=") (binary_expression "fVar28 + fVar29" (identifier "fVar28") (+ "+") (identifier "fVar29"))) (; ";")) (expression_statement "fVar43 = fVar29 * *pfVar22 + fVar43;" (assignment_expression "fVar43 = fVar29 * *pfVar22 + fVar43" (identifier "fVar43") (= "=") (binary_expression "fVar29 * *pfVar22 + fVar43" (binary_expression "fVar29 * *pfVar22" (identifier "fVar29") (* "*") (pointer_expression "*pfVar22" (* "*") (identifier "pfVar22"))) (+ "+") (identifier "fVar43"))) (; ";")) (expression_statement "fVar49 = fVar29 * pfVar22[1] + fVar49;" (assignment_expression "fVar49 = fVar29 * pfVar22[1] + fVar49" (identifier "fVar49") (= "=") (binary_expression "fVar29 * pfVar22[1] + fVar49" (binary_expression "fVar29 * pfVar22[1]" (identifier "fVar29") (* "*") (subscript_expression "pfVar22[1]" (identifier "pfVar22") ([ "[") (number_literal "1") (] "]"))) (+ "+") (identifier "fVar49"))) (; ";")) (expression_statement "fVar47 = fVar29 * pfVar22[2] + fVar47;" (assignment_expression "fVar47 = fVar29 * pfVar22[2] + fVar47" (identifier "fVar47") (= "=") (binary_expression "fVar29 * pfVar22[2] + fVar47" (binary_expression "fVar29 * pfVar22[2]" (identifier "fVar29") (* "*") (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "fVar47"))) (; ";")) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" (identifier "pfVar22") (= "=") (identifier "pfVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 != pfVar18)" (( "(") (binary_expression "unaff_s4 + (int)unaff_s0 * 4 != pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" (identifier "unaff_s4") (+ "+") (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4"))) (!= "!=") (identifier "pfVar18")) () ")")) (; ";")) (if_statement "if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" (if "if") (parenthesized_expression "(*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28)" (( "(") (binary_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28" (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e58)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e58)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e58)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e58" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e58")) () ")")))) (< "<") (identifier "fVar28")) () ")")) (compound_statement "{\n          fVar43 = fVar43 / fVar28;\n          fVar49 = fVar49 / fVar28;\n          fVar47 = fVar47 / fVar28;\n        }" ({ "{") (expression_statement "fVar43 = fVar43 / fVar28;" (assignment_expression "fVar43 = fVar43 / fVar28" (identifier "fVar43") (= "=") (binary_expression "fVar43 / fVar28" (identifier "fVar43") (/ "/") (identifier "fVar28"))) (; ";")) (expression_statement "fVar49 = fVar49 / fVar28;" (assignment_expression "fVar49 = fVar49 / fVar28" (identifier "fVar49") (= "=") (binary_expression "fVar49 / fVar28" (identifier "fVar49") (/ "/") (identifier "fVar28"))) (; ";")) (expression_statement "fVar47 = fVar47 / fVar28;" (assignment_expression "fVar47 = fVar47 / fVar28" (identifier "fVar47") (= "=") (binary_expression "fVar47 / fVar28" (identifier "fVar47") (/ "/") (identifier "fVar28"))) (; ";")) (} "}"))) (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" (identifier "fVar46") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar44 = 0.0;" (assignment_expression "fVar44 = 0.0" (identifier "fVar44") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar48 = 0.0;" (assignment_expression "fVar48 = 0.0" (identifier "fVar48") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar28 = 0.0;" (assignment_expression "fVar28 = 0.0" (identifier "fVar28") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" (identifier "fVar34") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" (identifier "fVar29") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pfVar22 = unaff_s4;" (assignment_expression "pfVar22 = unaff_s4" (identifier "pfVar22") (= "=") (identifier "unaff_s4")) (; ";")) (do_statement "do {\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        } while( true );" (do "do") (compound_statement "{\n          pfVar18 = pfVar22 + 4;\n          fVar32 = *pfVar22 - fVar43;\n          fVar30 = pfVar22[3];\n          fVar33 = pfVar22[1] - fVar49;\n          fVar31 = (pfVar22[2] - fVar47) * fVar30;\n          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;\n          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;\n          fVar28 = fVar32 * fVar31 + fVar28;\n          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;\n          fVar44 = fVar33 * fVar31 + fVar44;\n          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;\n          pfVar22 = pfVar18;\n          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;\n        }" ({ "{") (expression_statement "pfVar18 = pfVar22 + 4;" (assignment_expression "pfVar18 = pfVar22 + 4" (identifier "pfVar18") (= "=") (binary_expression "pfVar22 + 4" (identifier "pfVar22") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar32 = *pfVar22 - fVar43;" (assignment_expression "fVar32 = *pfVar22 - fVar43" (identifier "fVar32") (= "=") (binary_expression "*pfVar22 - fVar43" (pointer_expression "*pfVar22" (* "*") (identifier "pfVar22")) (- "-") (identifier "fVar43"))) (; ";")) (expression_statement "fVar30 = pfVar22[3];" (assignment_expression "fVar30 = pfVar22[3]" (identifier "fVar30") (= "=") (subscript_expression "pfVar22[3]" (identifier "pfVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "fVar33 = pfVar22[1] - fVar49;" (assignment_expression "fVar33 = pfVar22[1] - fVar49" (identifier "fVar33") (= "=") (binary_expression "pfVar22[1] - fVar49" (subscript_expression "pfVar22[1]" (identifier "pfVar22") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "fVar49"))) (; ";")) (expression_statement "fVar31 = (pfVar22[2] - fVar47) * fVar30;" (assignment_expression "fVar31 = (pfVar22[2] - fVar47) * fVar30" (identifier "fVar31") (= "=") (binary_expression "(pfVar22[2] - fVar47) * fVar30" (parenthesized_expression "(pfVar22[2] - fVar47)" (( "(") (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "fVar47")) () ")")) (* "*") (identifier "fVar30"))) (; ";")) (expression_statement "fVar29 = fVar32 * fVar30 * fVar32 + fVar29;" (assignment_expression "fVar29 = fVar32 * fVar30 * fVar32 + fVar29" (identifier "fVar29") (= "=") (binary_expression "fVar32 * fVar30 * fVar32 + fVar29" (binary_expression "fVar32 * fVar30 * fVar32" (binary_expression "fVar32 * fVar30" (identifier "fVar32") (* "*") (identifier "fVar30")) (* "*") (identifier "fVar32")) (+ "+") (identifier "fVar29"))) (; ";")) (expression_statement "fVar34 = fVar32 * fVar33 * fVar30 + fVar34;" (assignment_expression "fVar34 = fVar32 * fVar33 * fVar30 + fVar34" (identifier "fVar34") (= "=") (binary_expression "fVar32 * fVar33 * fVar30 + fVar34" (binary_expression "fVar32 * fVar33 * fVar30" (binary_expression "fVar32 * fVar33" (identifier "fVar32") (* "*") (identifier "fVar33")) (* "*") (identifier "fVar30")) (+ "+") (identifier "fVar34"))) (; ";")) (expression_statement "fVar28 = fVar32 * fVar31 + fVar28;" (assignment_expression "fVar28 = fVar32 * fVar31 + fVar28" (identifier "fVar28") (= "=") (binary_expression "fVar32 * fVar31 + fVar28" (binary_expression "fVar32 * fVar31" (identifier "fVar32") (* "*") (identifier "fVar31")) (+ "+") (identifier "fVar28"))) (; ";")) (expression_statement "fVar48 = fVar33 * fVar33 * fVar30 + fVar48;" (assignment_expression "fVar48 = fVar33 * fVar33 * fVar30 + fVar48" (identifier "fVar48") (= "=") (binary_expression "fVar33 * fVar33 * fVar30 + fVar48" (binary_expression "fVar33 * fVar33 * fVar30" (binary_expression "fVar33 * fVar33" (identifier "fVar33") (* "*") (identifier "fVar33")) (* "*") (identifier "fVar30")) (+ "+") (identifier "fVar48"))) (; ";")) (expression_statement "fVar44 = fVar33 * fVar31 + fVar44;" (assignment_expression "fVar44 = fVar33 * fVar31 + fVar44" (identifier "fVar44") (= "=") (binary_expression "fVar33 * fVar31 + fVar44" (binary_expression "fVar33 * fVar31" (identifier "fVar33") (* "*") (identifier "fVar31")) (+ "+") (identifier "fVar44"))) (; ";")) (expression_statement "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;" (assignment_expression "fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46" (identifier "fVar46") (= "=") (binary_expression "(pfVar22[2] - fVar47) * fVar31 + fVar46" (binary_expression "(pfVar22[2] - fVar47) * fVar31" (parenthesized_expression "(pfVar22[2] - fVar47)" (( "(") (binary_expression "pfVar22[2] - fVar47" (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "fVar47")) () ")")) (* "*") (identifier "fVar31")) (+ "+") (identifier "fVar46"))) (; ";")) (expression_statement "pfVar22 = pfVar18;" (assignment_expression "pfVar22 = pfVar18" (identifier "pfVar22") (= "=") (identifier "pfVar18")) (; ";")) (if_statement "if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;" (if "if") (parenthesized_expression "(unaff_s4 + (int)unaff_s0 * 4 == pfVar18)" (( "(") (binary_expression "unaff_s4 + (int)unaff_s0 * 4 == pfVar18" (binary_expression "unaff_s4 + (int)unaff_s0 * 4" (identifier "unaff_s4") (+ "+") (binary_expression "(int)unaff_s0 * 4" (cast_expression "(int)unaff_s0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s0")) (* "*") (number_literal "4"))) (== "==") (identifier "pfVar18")) () ")")) (goto_statement "goto LAB_0021663c;" (goto "goto") (statement_identifier "LAB_0021663c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" (identifier "uVar5") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";")) (expression_statement "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);" (assignment_expression "fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (identifier "fVar49") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a94")) () ")"))))) (; ";")) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (; ";")) (expression_statement "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);" (assignment_expression "uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47)" (identifier "uVar12") (= "=") (call_expression "(uint)(local_2fc[1] * fVar49 + fVar47)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_2fc[1] * fVar49 + fVar47)" (( "(") (binary_expression "local_2fc[1] * fVar49 + fVar47" (binary_expression "local_2fc[1] * fVar49" (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]")) (* "*") (identifier "fVar49")) (+ "+") (identifier "fVar47")) () ")")))) (; ";")) (expression_statement "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);" (assignment_expression "uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47)" (identifier "uVar20") (= "=") (call_expression "(uint)(local_2fc[2] * fVar49 + fVar47)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_2fc[2] * fVar49 + fVar47)" (( "(") (binary_expression "local_2fc[2] * fVar49 + fVar47" (binary_expression "local_2fc[2] * fVar49" (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]")) (* "*") (identifier "fVar49")) (+ "+") (identifier "fVar47")) () ")")))) (; ";")) (expression_statement "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);" (assignment_expression "uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47)" (identifier "uVar23") (= "=") (call_expression "(uint)(local_2fc[0] * fVar49 + fVar47)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_2fc[0] * fVar49 + fVar47)" (( "(") (binary_expression "local_2fc[0] * fVar49 + fVar47" (binary_expression "local_2fc[0] * fVar49" (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]")) (* "*") (identifier "fVar49")) (+ "+") (identifier "fVar47")) () ")")))) (; ";")) (if_statement "if (0xff < uVar12) {\n        uVar12 = 0xff;\n      }" (if "if") (parenthesized_expression "(0xff < uVar12)" (( "(") (binary_expression "0xff < uVar12" (number_literal "0xff") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n        uVar12 = 0xff;\n      }" ({ "{") (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" (identifier "uVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (0xff < uVar20) {\n        uVar20 = 0xff;\n      }" (if "if") (parenthesized_expression "(0xff < uVar20)" (( "(") (binary_expression "0xff < uVar20" (number_literal "0xff") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n        uVar20 = 0xff;\n      }" ({ "{") (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" (identifier "uVar20") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (0xff < uVar23) {\n        uVar23 = 0xff;\n      }" (if "if") (parenthesized_expression "(0xff < uVar23)" (( "(") (binary_expression "0xff < uVar23" (number_literal "0xff") (< "<") (identifier "uVar23")) () ")")) (compound_statement "{\n        uVar23 = 0xff;\n      }" ({ "{") (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" (identifier "uVar23") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (expression_statement "local_fc[2] = (char)uVar20;" (assignment_expression "local_fc[2] = (char)uVar20" (subscript_expression "local_fc[2]" (identifier "local_fc") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_fc[1] = (char)uVar12;" (assignment_expression "local_fc[1] = (char)uVar12" (subscript_expression "local_fc[1]" (identifier "local_fc") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)uVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "local_fc[0] = (byte)uVar23;" (assignment_expression "local_fc[0] = (byte)uVar23" (subscript_expression "local_fc[0]" (identifier "local_fc") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte)uVar23" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar23"))) (; ";")) (while_statement "while( true ) {\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar16 = iVar26 * 3;\n        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);\n        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);\n        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);\n        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];\n        if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }\n        if (iVar26 == 1) break;\n        iVar26 = 1;\n      }" ({ "{") (expression_statement "iVar16 = iVar26 * 3;" (assignment_expression "iVar16 = iVar26 * 3" (identifier "iVar16") (= "=") (binary_expression "iVar26 * 3" (identifier "iVar26") (* "*") (number_literal "3"))) (; ";")) (expression_statement "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16)" (( "(") (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78cc)" (* "*") (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003a88cc + -0x78cc)" (( "(") (binary_expression "PTR_DAT_003a88cc + -0x78cc" (identifier "PTR_DAT_003a88cc") (+ "+") (number_literal "-0x78cc")) () ")")))) (+ "+") (binary_expression "(uVar12 & 0xff) * 6" (parenthesized_expression "(uVar12 & 0xff)" (( "(") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6"))) (+ "+") (identifier "iVar16")) () ")")))) (; ";")) (expression_statement "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16)" (( "(") (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78c8)" (* "*") (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003a88cc + -0x78c8)" (( "(") (binary_expression "PTR_DAT_003a88cc + -0x78c8" (identifier "PTR_DAT_003a88cc") (+ "+") (number_literal "-0x78c8")) () ")")))) (+ "+") (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" (( "(") (binary_expression "uVar20 & 0xff" (identifier "uVar20") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6"))) (+ "+") (identifier "iVar16")) () ")")))) (; ";")) (expression_statement "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);" (assignment_expression "pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16)" (( "(") (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16" (binary_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6" (pointer_expression "*(int *)(PTR_DAT_003a88cc + -0x78d0)" (* "*") (cast_expression "(int *)(PTR_DAT_003a88cc + -0x78d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003a88cc + -0x78d0)" (( "(") (binary_expression "PTR_DAT_003a88cc + -0x78d0" (identifier "PTR_DAT_003a88cc") (+ "+") (number_literal "-0x78d0")) () ")")))) (+ "+") (binary_expression "(uVar23 & 0xff) * 6" (parenthesized_expression "(uVar23 & 0xff)" (( "(") (binary_expression "uVar23 & 0xff" (identifier "uVar23") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6"))) (+ "+") (identifier "iVar16")) () ")")))) (; ";")) (expression_statement "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2];" (assignment_expression "uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" (identifier "uVar52") (= "=") (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +\n                 (uint)pbVar11[2] * (uint)pbVar11[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2]" (binary_expression "(uint)pbVar24[2] * (uint)pbVar24[2]" (cast_expression "(uint)pbVar24[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar24[2]" (identifier "pbVar24") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar24[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar24[2]" (identifier "pbVar24") ([ "[") (number_literal "2") (] "]")))) (+ "+") (binary_expression "(uint)pbVar10[2] * (uint)pbVar10[2]" (cast_expression "(uint)pbVar10[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar10[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))))) (+ "+") (binary_expression "(uint)pbVar11[2] * (uint)pbVar11[2]" (cast_expression "(uint)pbVar11[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar11[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (if_statement "if (uVar52 <= uVar5) {\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" (if "if") (parenthesized_expression "(uVar52 <= uVar5)" (( "(") (binary_expression "uVar52 <= uVar5" (identifier "uVar52") (<= "<=") (identifier "uVar5")) () ")")) (compound_statement "{\n          local_3d8 = (float)*pbVar11 / fVar28;\n          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3d0 = (float)*pbVar10 / fVar28;\n          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);\n          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));\n          local_3c0 = (float *)((float)pbVar10[1] / fVar28);\n          iVar6 = iVar26 * 2;\n          uVar5 = uVar52;\n        }" ({ "{") (expression_statement "local_3d8 = (float)*pbVar11 / fVar28;" (assignment_expression "local_3d8 = (float)*pbVar11 / fVar28" (identifier "local_3d8") (= "=") (binary_expression "(float)*pbVar11 / fVar28" (cast_expression "(float)*pbVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (/ "/") (identifier "fVar28"))) (; ";")) (expression_statement "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (identifier "local_3d4") (= "=") (binary_expression "(float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)*pbVar24" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24"))) (/ "/") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e6c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e6c")) () ")")))))) (; ";")) (expression_statement "local_3d0 = (float)*pbVar10 / fVar28;" (assignment_expression "local_3d0 = (float)*pbVar10 / fVar28" (identifier "local_3d0") (= "=") (binary_expression "(float)*pbVar10 / fVar28" (cast_expression "(float)*pbVar10" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (/ "/") (identifier "fVar28"))) (; ";")) (expression_statement "local_3c8 = (byte *)((float)pbVar11[1] / fVar28);" (assignment_expression "local_3c8 = (byte *)((float)pbVar11[1] / fVar28)" (identifier "local_3c8") (= "=") (cast_expression "(byte *)((float)pbVar11[1] / fVar28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((float)pbVar11[1] / fVar28)" (( "(") (binary_expression "(float)pbVar11[1] / fVar28" (cast_expression "(float)pbVar11[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]"))) (/ "/") (identifier "fVar28")) () ")")))) (; ";")) (expression_statement "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));" (assignment_expression "local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" (identifier "local_3c4") (= "=") (cast_expression "(undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c))" (( "(") (binary_expression "(float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (cast_expression "(float)pbVar24[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))) (/ "/") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e6c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e6c")) () ")"))))) () ")")))) (; ";")) (expression_statement "local_3c0 = (float *)((float)pbVar10[1] / fVar28);" (assignment_expression "local_3c0 = (float *)((float)pbVar10[1] / fVar28)" (identifier "local_3c0") (= "=") (cast_expression "(float *)((float)pbVar10[1] / fVar28)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((float)pbVar10[1] / fVar28)" (( "(") (binary_expression "(float)pbVar10[1] / fVar28" (cast_expression "(float)pbVar10[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (/ "/") (identifier "fVar28")) () ")")))) (; ";")) (expression_statement "iVar6 = iVar26 * 2;" (assignment_expression "iVar6 = iVar26 * 2" (identifier "iVar6") (= "=") (binary_expression "iVar26 * 2" (identifier "iVar26") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar5 = uVar52;" (assignment_expression "uVar5 = uVar52" (identifier "uVar5") (= "=") (identifier "uVar52")) (; ";")) (} "}"))) (if_statement "if (iVar26 == 1) break;" (if "if") (parenthesized_expression "(iVar26 == 1)" (( "(") (binary_expression "iVar26 == 1" (identifier "iVar26") (== "==") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" (identifier "iVar26") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pbVar11 = local_ec;" (assignment_expression "pbVar11 = local_ec" (identifier "pbVar11") (= "=") (identifier "local_ec")) (; ";")) (do_statement "do {\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      } while (local_dc != pbVar11);" (do "do") (compound_statement "{\n        *pbVar11 = (byte)iVar6;\n        pbVar11 = pbVar11 + 1;\n        pbVar10 = local_dc;\n      }" ({ "{") (expression_statement "*pbVar11 = (byte)iVar6;" (assignment_expression "*pbVar11 = (byte)iVar6" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (cast_expression "(byte)iVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar6"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = local_dc;" (assignment_expression "pbVar10 = local_dc" (identifier "pbVar10") (= "=") (identifier "local_dc")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_dc != pbVar11)" (( "(") (binary_expression "local_dc != pbVar11" (identifier "local_dc") (!= "!=") (identifier "pbVar11")) () ")")) (; ";")) (do_statement "do {\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      } while (unaff_s1 != pfVar21 + 1);" (do "do") (compound_statement "{\n        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }\n        *pbVar10 = 3;\n        pbVar10 = pbVar10 + 1;\n        unaff_s2 = pfVar21 + 1;\n      }" ({ "{") (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" (while "while") (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" (( "(") (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" (identifier "pfVar21") (= "=") (identifier "unaff_s2")) (, ",") (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (!= "!=") (unary_expression "-NAN" (- "-") (identifier "NAN")))) () ")")) (compound_statement "{\n          *pbVar10 = local_ec[(int)*pfVar21];\n          pbVar10 = pbVar10 + 1;\n          unaff_s2 = pfVar21 + 1;\n          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;\n        }" ({ "{") (expression_statement "*pbVar10 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar10 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (subscript_expression "local_ec[(int)*pfVar21]" (identifier "local_ec") ([ "[") (cast_expression "(int)*pfVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21"))) (] "]"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;" (if "if") (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" (( "(") (binary_expression "unaff_s1 == pfVar21 + 1" (identifier "unaff_s1") (== "==") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_00216f04;" (goto "goto") (statement_identifier "LAB_00216f04") (; ";"))) (} "}"))) (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" (( "(") (binary_expression "unaff_s1 != pfVar21 + 1" (identifier "unaff_s1") (!= "!=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) () ")")) (; ";")) (labeled_statement "LAB_00216f04:\n      unaff_s2 = pfVar21 + 1;" (statement_identifier "LAB_00216f04") (: ":") (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);" (call_expression "FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" (identifier "FUN_002128dc") (argument_list "(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc)" (( "(") (identifier "param_1") (, ",") (identifier "local_3d8") (, ",") (identifier "local_3d4") (, ",") (identifier "local_3d0") (, ",") (identifier "local_3c8") (, ",") (identifier "local_3c4") (, ",") (identifier "local_3c0") (, ",") (identifier "local_dc") () ")"))) (; ";")) (while_statement "while( true ) {\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        local_508._0_4_ = *(uint *)(param_1 + 0x18);\n        uVar5 = *(uint *)(param_1 + 0x1c);\n        uVar23 = local_4cc;\n        if ((int)local_4cc < (int)local_508._0_4_) break;\nLAB_00216b38:\n        local_4d0 = local_4c8;\n        pfVar21 = unaff_s4;\n        unaff_s6 = param_2;\n        unaff_s8 = param_1;\n        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;\nLAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }\n        (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_0021703c:\n        fVar46 = 0.0;\n        param_2 = unaff_s6;\n        param_1 = unaff_s8;\n        fVar28 = fVar46;\n        fVar29 = fVar46;\n        fVar34 = fVar46;\n        fVar48 = fVar46;\n        fVar44 = fVar46;\nLAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n        iVar6 = 8;\n        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);\n        fVar47 = fVar43;\n        fVar49 = fVar43;\n        do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);\nLAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);\n        if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }\nLAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);\n      }" ({ "{") (expression_statement "local_508._0_4_ = *(uint *)(param_1 + 0x18);" (assignment_expression "local_508._0_4_ = *(uint *)(param_1 + 0x18)" (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")) (= "=") (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar23 = local_4cc;" (assignment_expression "uVar23 = local_4cc" (identifier "uVar23") (= "=") (identifier "local_4cc")) (; ";")) (if_statement "if ((int)local_4cc < (int)local_508._0_4_) break;" (if "if") (parenthesized_expression "((int)local_4cc < (int)local_508._0_4_)" (( "(") (binary_expression "(int)local_4cc < (int)local_508._0_4_" (cast_expression "(int)local_4cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4cc")) (< "<") (cast_expression "(int)local_508._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_508._0_4_" (identifier "local_508") (. ".") (field_identifier "_0_4_")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00216b38:\n        local_4d0 = local_4c8;" (statement_identifier "LAB_00216b38") (: ":") (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" (identifier "local_4d0") (= "=") (identifier "local_4c8")) (; ";"))) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" (identifier "pfVar21") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "unaff_s6 = param_2;" (assignment_expression "unaff_s6 = param_2" (identifier "unaff_s6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" (identifier "unaff_s8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;" (if "if") (parenthesized_expression "((int)local_4c8 < (int)uVar5)" (( "(") (binary_expression "(int)local_4c8 < (int)uVar5" (cast_expression "(int)local_4c8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c8")) (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_00216150;" (goto "goto") (statement_identifier "LAB_00216150") (; ";"))) (labeled_statement "LAB_00216b50:\n        if (local_5c == *(int *)puVar4) {\n          return;\n        }" (statement_identifier "LAB_00216b50") (: ":") (if_statement "if (local_5c == *(int *)puVar4) {\n          return;\n        }" (if "if") (parenthesized_expression "(local_5c == *(int *)puVar4)" (( "(") (binary_expression "local_5c == *(int *)puVar4" (identifier "local_5c") (== "==") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0021703c:\n        fVar46 = 0.0;" (statement_identifier "LAB_0021703c") (: ":") (expression_statement "fVar46 = 0.0;" (assignment_expression "fVar46 = 0.0" (identifier "fVar46") (= "=") (number_literal "0.0")) (; ";"))) (expression_statement "param_2 = unaff_s6;" (assignment_expression "param_2 = unaff_s6" (identifier "param_2") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" (identifier "param_1") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "fVar28 = fVar46;" (assignment_expression "fVar28 = fVar46" (identifier "fVar28") (= "=") (identifier "fVar46")) (; ";")) (expression_statement "fVar29 = fVar46;" (assignment_expression "fVar29 = fVar46" (identifier "fVar29") (= "=") (identifier "fVar46")) (; ";")) (expression_statement "fVar34 = fVar46;" (assignment_expression "fVar34 = fVar46" (identifier "fVar34") (= "=") (identifier "fVar46")) (; ";")) (expression_statement "fVar48 = fVar46;" (assignment_expression "fVar48 = fVar46" (identifier "fVar48") (= "=") (identifier "fVar46")) (; ";")) (expression_statement "fVar44 = fVar46;" (assignment_expression "fVar44 = fVar46" (identifier "fVar44") (= "=") (identifier "fVar46")) (; ";")) (labeled_statement "LAB_0021663c:\n        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (statement_identifier "LAB_0021663c") (: ":") (expression_statement "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "puVar9") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";"))) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" (identifier "iVar6") (= "=") (number_literal "8")) (; ";")) (expression_statement "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar51") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (expression_statement "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);" (assignment_expression "dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8)" (identifier "dVar50") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x13f8)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x13f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x13f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";")) (expression_statement "fVar47 = fVar43;" (assignment_expression "fVar47 = fVar43" (identifier "fVar47") (= "=") (identifier "fVar43")) (; ";")) (expression_statement "fVar49 = fVar43;" (assignment_expression "fVar49 = fVar43" (identifier "fVar49") (= "=") (identifier "fVar43")) (; ";")) (do_statement "do {\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        } while (iVar6 != 0);" (do "do") (compound_statement "{\n          while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }\n          if (fVar31 < fVar49) goto LAB_00216720;\nLAB_0021668c:\n          fVar47 = fVar30;\n          if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }\n          local_508 = (double)fVar47;\n          if (0.0 <= fVar47) goto LAB_002166ac;\nLAB_00216730:\n          local_4f0 = -local_508;\n          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);\n          if (local_4f0 < dVar50) goto LAB_00216758;\nLAB_002166c4:\n          iVar6 = iVar6 + -1;\n          fVar43 = (float)(dVar51 / local_508);\n          fVar49 = fVar49 * fVar43;\n          fVar47 = fVar30 * fVar43;\n          fVar43 = fVar31 * fVar43;\n        }" ({ "{") (while_statement "while( true ) {\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;\n            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;\n            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;\n            if (fVar30 <= fVar31) break;\n            if (fVar49 <= fVar30) goto LAB_0021668c;\nLAB_00216720:\n            local_508 = (double)fVar49;\n            if (fVar49 < 0.0) goto LAB_00216730;\nLAB_002166ac:\n            dVar36 = dVar51;\n            if (dVar50 <= local_508) goto LAB_002166c4;\nLAB_00216758:\n            iVar6 = iVar6 + -1;\n            fVar43 = (float)(dVar36 / dVar50);\n            fVar49 = fVar49 * fVar43;\n            fVar47 = fVar30 * fVar43;\n            fVar43 = fVar31 * fVar43;\n            if (iVar6 == 0) goto LAB_00216774;\n          }" ({ "{") (expression_statement "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;" (assignment_expression "fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" (identifier "fVar30") (= "=") (binary_expression "fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47" (binary_expression "fVar44 * fVar43 + fVar34 * fVar49" (binary_expression "fVar44 * fVar43" (identifier "fVar44") (* "*") (identifier "fVar43")) (+ "+") (binary_expression "fVar34 * fVar49" (identifier "fVar34") (* "*") (identifier "fVar49"))) (+ "+") (binary_expression "fVar48 * fVar47" (identifier "fVar48") (* "*") (identifier "fVar47")))) (; ";")) (expression_statement "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;" (assignment_expression "fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" (identifier "fVar31") (= "=") (binary_expression "fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47" (binary_expression "fVar46 * fVar43 + fVar28 * fVar49" (binary_expression "fVar46 * fVar43" (identifier "fVar46") (* "*") (identifier "fVar43")) (+ "+") (binary_expression "fVar28 * fVar49" (identifier "fVar28") (* "*") (identifier "fVar49"))) (+ "+") (binary_expression "fVar44 * fVar47" (identifier "fVar44") (* "*") (identifier "fVar47")))) (; ";")) (expression_statement "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;" (assignment_expression "fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" (identifier "fVar49") (= "=") (binary_expression "fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47" (binary_expression "fVar28 * fVar43 + fVar29 * fVar49" (binary_expression "fVar28 * fVar43" (identifier "fVar28") (* "*") (identifier "fVar43")) (+ "+") (binary_expression "fVar29 * fVar49" (identifier "fVar29") (* "*") (identifier "fVar49"))) (+ "+") (binary_expression "fVar34 * fVar47" (identifier "fVar34") (* "*") (identifier "fVar47")))) (; ";")) (if_statement "if (fVar30 <= fVar31) break;" (if "if") (parenthesized_expression "(fVar30 <= fVar31)" (( "(") (binary_expression "fVar30 <= fVar31" (identifier "fVar30") (<= "<=") (identifier "fVar31")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (fVar49 <= fVar30) goto LAB_0021668c;" (if "if") (parenthesized_expression "(fVar49 <= fVar30)" (( "(") (binary_expression "fVar49 <= fVar30" (identifier "fVar49") (<= "<=") (identifier "fVar30")) () ")")) (goto_statement "goto LAB_0021668c;" (goto "goto") (statement_identifier "LAB_0021668c") (; ";"))) (labeled_statement "LAB_00216720:\n            local_508 = (double)fVar49;" (statement_identifier "LAB_00216720") (: ":") (expression_statement "local_508 = (double)fVar49;" (assignment_expression "local_508 = (double)fVar49" (identifier "local_508") (= "=") (cast_expression "(double)fVar49" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar49"))) (; ";"))) (if_statement "if (fVar49 < 0.0) goto LAB_00216730;" (if "if") (parenthesized_expression "(fVar49 < 0.0)" (( "(") (binary_expression "fVar49 < 0.0" (identifier "fVar49") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00216730;" (goto "goto") (statement_identifier "LAB_00216730") (; ";"))) (labeled_statement "LAB_002166ac:\n            dVar36 = dVar51;" (statement_identifier "LAB_002166ac") (: ":") (expression_statement "dVar36 = dVar51;" (assignment_expression "dVar36 = dVar51" (identifier "dVar36") (= "=") (identifier "dVar51")) (; ";"))) (if_statement "if (dVar50 <= local_508) goto LAB_002166c4;" (if "if") (parenthesized_expression "(dVar50 <= local_508)" (( "(") (binary_expression "dVar50 <= local_508" (identifier "dVar50") (<= "<=") (identifier "local_508")) () ")")) (goto_statement "goto LAB_002166c4;" (goto "goto") (statement_identifier "LAB_002166c4") (; ";"))) (labeled_statement "LAB_00216758:\n            iVar6 = iVar6 + -1;" (statement_identifier "LAB_00216758") (: ":") (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "fVar43 = (float)(dVar36 / dVar50);" (assignment_expression "fVar43 = (float)(dVar36 / dVar50)" (identifier "fVar43") (= "=") (cast_expression "(float)(dVar36 / dVar50)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar36 / dVar50)" (( "(") (binary_expression "dVar36 / dVar50" (identifier "dVar36") (/ "/") (identifier "dVar50")) () ")")))) (; ";")) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" (identifier "fVar49") (= "=") (binary_expression "fVar49 * fVar43" (identifier "fVar49") (* "*") (identifier "fVar43"))) (; ";")) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" (identifier "fVar47") (= "=") (binary_expression "fVar30 * fVar43" (identifier "fVar30") (* "*") (identifier "fVar43"))) (; ";")) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" (identifier "fVar43") (= "=") (binary_expression "fVar31 * fVar43" (identifier "fVar31") (* "*") (identifier "fVar43"))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00216774;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00216774;" (goto "goto") (statement_identifier "LAB_00216774") (; ";"))) (} "}"))) (if_statement "if (fVar31 < fVar49) goto LAB_00216720;" (if "if") (parenthesized_expression "(fVar31 < fVar49)" (( "(") (binary_expression "fVar31 < fVar49" (identifier "fVar31") (< "<") (identifier "fVar49")) () ")")) (goto_statement "goto LAB_00216720;" (goto "goto") (statement_identifier "LAB_00216720") (; ";"))) (labeled_statement "LAB_0021668c:\n          fVar47 = fVar30;" (statement_identifier "LAB_0021668c") (: ":") (expression_statement "fVar47 = fVar30;" (assignment_expression "fVar47 = fVar30" (identifier "fVar47") (= "=") (identifier "fVar30")) (; ";"))) (if_statement "if (fVar30 <= fVar31) {\n            fVar47 = fVar31;\n          }" (if "if") (parenthesized_expression "(fVar30 <= fVar31)" (( "(") (binary_expression "fVar30 <= fVar31" (identifier "fVar30") (<= "<=") (identifier "fVar31")) () ")")) (compound_statement "{\n            fVar47 = fVar31;\n          }" ({ "{") (expression_statement "fVar47 = fVar31;" (assignment_expression "fVar47 = fVar31" (identifier "fVar47") (= "=") (identifier "fVar31")) (; ";")) (} "}"))) (expression_statement "local_508 = (double)fVar47;" (assignment_expression "local_508 = (double)fVar47" (identifier "local_508") (= "=") (cast_expression "(double)fVar47" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar47"))) (; ";")) (if_statement "if (0.0 <= fVar47) goto LAB_002166ac;" (if "if") (parenthesized_expression "(0.0 <= fVar47)" (( "(") (binary_expression "0.0 <= fVar47" (number_literal "0.0") (<= "<=") (identifier "fVar47")) () ")")) (goto_statement "goto LAB_002166ac;" (goto "goto") (statement_identifier "LAB_002166ac") (; ";"))) (labeled_statement "LAB_00216730:\n          local_4f0 = -local_508;" (statement_identifier "LAB_00216730") (: ":") (expression_statement "local_4f0 = -local_508;" (assignment_expression "local_4f0 = -local_508" (identifier "local_4f0") (= "=") (unary_expression "-local_508" (- "-") (identifier "local_508"))) (; ";"))) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78)" (identifier "dVar36") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a78)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a78)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a78" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a78")) () ")"))))) (; ";")) (if_statement "if (local_4f0 < dVar50) goto LAB_00216758;" (if "if") (parenthesized_expression "(local_4f0 < dVar50)" (( "(") (binary_expression "local_4f0 < dVar50" (identifier "local_4f0") (< "<") (identifier "dVar50")) () ")")) (goto_statement "goto LAB_00216758;" (goto "goto") (statement_identifier "LAB_00216758") (; ";"))) (labeled_statement "LAB_002166c4:\n          iVar6 = iVar6 + -1;" (statement_identifier "LAB_002166c4") (: ":") (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "fVar43 = (float)(dVar51 / local_508);" (assignment_expression "fVar43 = (float)(dVar51 / local_508)" (identifier "fVar43") (= "=") (cast_expression "(float)(dVar51 / local_508)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar51 / local_508)" (( "(") (binary_expression "dVar51 / local_508" (identifier "dVar51") (/ "/") (identifier "local_508")) () ")")))) (; ";")) (expression_statement "fVar49 = fVar49 * fVar43;" (assignment_expression "fVar49 = fVar49 * fVar43" (identifier "fVar49") (= "=") (binary_expression "fVar49 * fVar43" (identifier "fVar49") (* "*") (identifier "fVar43"))) (; ";")) (expression_statement "fVar47 = fVar30 * fVar43;" (assignment_expression "fVar47 = fVar30 * fVar43" (identifier "fVar47") (= "=") (binary_expression "fVar30 * fVar43" (identifier "fVar30") (* "*") (identifier "fVar43"))) (; ";")) (expression_statement "fVar43 = fVar31 * fVar43;" (assignment_expression "fVar43 = fVar31 * fVar43" (identifier "fVar43") (= "=") (binary_expression "fVar31 * fVar43" (identifier "fVar31") (* "*") (identifier "fVar43"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00216774:\n        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" (statement_identifier "LAB_00216774") (: ":") (expression_statement "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)dVar51 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)dVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar51 >> 0x20" (cast_expression "(ulonglong)dVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar51")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (if_statement "if (param_3 == 0) {\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }\n        else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;\n          local_478 = local_2fc[1];\n          local_47c = local_2fc[0];\n          local_474 = local_2fc[2];\n          local_488 = local_2fc[0];\n          local_484 = local_2fc[1];\n          local_480 = local_2fc[2];\n          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];\n          if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }\n          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          fVar29 = local_474;\n          fVar47 = local_488;\n          fVar49 = local_484;\n          fVar43 = local_480;\n          if (0.0 <= local_474) goto LAB_002167c4;\nLAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n          if ((float)uVar39 <= 0.0) goto LAB_00217224;\nLAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n          uVar39 = CONCAT44(uVar37,fVar28);\njoined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }\n          uVar39 = CONCAT44(uVar37,fVar29);\n          if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);\n          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);\n          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);\n          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);\n          local_1fc = local_47c;\n          local_1f8 = local_478;\n          local_1f4 = local_474;\n          local_1f0 = local_488;\n          local_1ec = local_484;\n          local_1e8 = local_480;\n          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;\n          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;\n          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;\n          local_1dc = fVar29 * fVar47 + local_480 * fVar34;\n          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;\n          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;\n          if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);\n        }" ({ "{") (if_statement "if (unaff_s0 == (byte *)0x0) goto LAB_00216788;" (if "if") (parenthesized_expression "(unaff_s0 == (byte *)0x0)" (( "(") (binary_expression "unaff_s0 == (byte *)0x0" (identifier "unaff_s0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00216788;" (goto "goto") (statement_identifier "LAB_00216788") (; ";"))) (expression_statement "local_478 = local_2fc[1];" (assignment_expression "local_478 = local_2fc[1]" (identifier "local_478") (= "=") (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_47c = local_2fc[0];" (assignment_expression "local_47c = local_2fc[0]" (identifier "local_47c") (= "=") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_474 = local_2fc[2];" (assignment_expression "local_474 = local_2fc[2]" (identifier "local_474") (= "=") (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_488 = local_2fc[0];" (assignment_expression "local_488 = local_2fc[0]" (identifier "local_488") (= "=") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_484 = local_2fc[1];" (assignment_expression "local_484 = local_2fc[1]" (identifier "local_484") (= "=") (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_480 = local_2fc[2];" (assignment_expression "local_480 = local_2fc[2]" (identifier "local_480") (= "=") (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];" (assignment_expression "fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" (identifier "fVar28") (= "=") (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1]" (binary_expression "fVar43 * local_2fc[2] + fVar49 * local_2fc[0]" (binary_expression "fVar43 * local_2fc[2]" (identifier "fVar43") (* "*") (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]"))) (+ "+") (binary_expression "fVar49 * local_2fc[0]" (identifier "fVar49") (* "*") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]")))) (+ "+") (binary_expression "fVar47 * local_2fc[1]" (identifier "fVar47") (* "*") (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if ((int)unaff_s3 < 2) {\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }\n          else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" (if "if") (parenthesized_expression "((int)unaff_s3 < 2)" (( "(") (binary_expression "(int)unaff_s3 < 2" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }\nLAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }\n          }" ({ "{") (if_statement "if (0.0 <= local_2fc[0]) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" (if "if") (parenthesized_expression "(0.0 <= local_2fc[0])" (( "(") (binary_expression "0.0 <= local_2fc[0]" (number_literal "0.0") (<= "<=") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179a0;\n            }" ({ "{") (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (goto_statement "goto LAB_002179a0;" (goto "goto") (statement_identifier "LAB_002179a0") (; ";")) (} "}"))) (labeled_statement "LAB_002171e0:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (statement_identifier "LAB_002171e0") (: ":") (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";"))) (labeled_statement "LAB_002171e8:\n            uVar39 = CONCAT44(uVar37,fVar28);" (statement_identifier "LAB_002171e8") (: ":") (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar28)" (identifier "CONCAT44") (argument_list "(uVar37,fVar28)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar28") () ")")))) (; ";"))) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (0.0 <= local_478) {\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" (if "if") (parenthesized_expression "(0.0 <= local_478)" (( "(") (binary_expression "0.0 <= local_478" (number_literal "0.0") (<= "<=") (identifier "local_478")) () ")")) (compound_statement "{\nLAB_002179c0:\n              fVar29 = local_474;\n              fVar34 = local_478;\n              fVar47 = local_488;\n              fVar49 = local_484;\n              fVar43 = local_480;\n              if (local_478 <= fVar28) goto LAB_002167a4;\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002167b4;\n            }" ({ "{") (labeled_statement "LAB_002179c0:\n              fVar29 = local_474;" (statement_identifier "LAB_002179c0") (: ":") (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" (identifier "fVar29") (= "=") (identifier "local_474")) (; ";"))) (expression_statement "fVar34 = local_478;" (assignment_expression "fVar34 = local_478" (identifier "fVar34") (= "=") (identifier "local_478")) (; ";")) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" (identifier "fVar47") (= "=") (identifier "local_488")) (; ";")) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" (identifier "fVar49") (= "=") (identifier "local_484")) (; ";")) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" (identifier "fVar43") (= "=") (identifier "local_480")) (; ";")) (if_statement "if (local_478 <= fVar28) goto LAB_002167a4;" (if "if") (parenthesized_expression "(local_478 <= fVar28)" (( "(") (binary_expression "local_478 <= fVar28" (identifier "local_478") (<= "<=") (identifier "fVar28")) () ")")) (goto_statement "goto LAB_002167a4;" (goto "goto") (statement_identifier "LAB_002167a4") (; ";"))) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e64" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e64")) () ")"))))) (; ";")) (goto_statement "goto LAB_002167b4;" (goto "goto") (statement_identifier "LAB_002167b4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" (else "else") (compound_statement "{\n            pfVar22 = local_2fc + 4;\n            bVar2 = false;\n            bVar15 = false;\n            bVar17 = false;\n            bVar13 = false;\n            fVar29 = local_2fc[0];\n            fVar34 = fVar28;\n            fVar48 = local_2fc[2];\n            fVar44 = local_2fc[1];\n            fVar46 = local_2fc[2];\n            fVar30 = local_2fc[0];\n            fVar31 = local_2fc[1];\n            do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);\nLAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }\n            if (bVar17) {\n              local_488 = fVar29;\n            }\n            if (bVar15) {\n              local_484 = fVar44;\n            }\n            if (bVar2) {\n              local_480 = fVar48;\n            }\n            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n            if (local_47c < 0.0) goto LAB_002171e0;\nLAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n            if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }\n          }" ({ "{") (expression_statement "pfVar22 = local_2fc + 4;" (assignment_expression "pfVar22 = local_2fc + 4" (identifier "pfVar22") (= "=") (binary_expression "local_2fc + 4" (identifier "local_2fc") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "fVar29 = local_2fc[0];" (assignment_expression "fVar29 = local_2fc[0]" (identifier "fVar29") (= "=") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "fVar34 = fVar28;" (assignment_expression "fVar34 = fVar28" (identifier "fVar34") (= "=") (identifier "fVar28")) (; ";")) (expression_statement "fVar48 = local_2fc[2];" (assignment_expression "fVar48 = local_2fc[2]" (identifier "fVar48") (= "=") (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "fVar44 = local_2fc[1];" (assignment_expression "fVar44 = local_2fc[1]" (identifier "fVar44") (= "=") (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "fVar46 = local_2fc[2];" (assignment_expression "fVar46 = local_2fc[2]" (identifier "fVar46") (= "=") (subscript_expression "local_2fc[2]" (identifier "local_2fc") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "fVar30 = local_2fc[0];" (assignment_expression "fVar30 = local_2fc[0]" (identifier "fVar30") (= "=") (subscript_expression "local_2fc[0]" (identifier "local_2fc") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "fVar31 = local_2fc[1];" (assignment_expression "fVar31 = local_2fc[1]" (identifier "fVar31") (= "=") (subscript_expression "local_2fc[1]" (identifier "local_2fc") ([ "[") (number_literal "1") (] "]"))) (; ";")) (do_statement "do {\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);" (do "do") (compound_statement "{\n              while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }\n              pfVar22 = pfVar22 + 4;\n              bVar13 = true;\n              fVar34 = fVar35;\n              fVar46 = fVar32;\n              fVar30 = fVar33;\n              fVar31 = fVar41;\n            }" ({ "{") (while_statement "while( true ) {\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                fVar41 = pfVar22[1];\n                fVar33 = *pfVar22;\n                fVar32 = pfVar22[2];\n                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;\n                if (fVar35 < fVar34) break;\n                if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }\n                pfVar22 = pfVar22 + 4;\n                fVar32 = fVar46;\n                fVar33 = fVar30;\n                fVar41 = fVar31;\n                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;\n              }" ({ "{") (expression_statement "fVar41 = pfVar22[1];" (assignment_expression "fVar41 = pfVar22[1]" (identifier "fVar41") (= "=") (subscript_expression "pfVar22[1]" (identifier "pfVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "fVar33 = *pfVar22;" (assignment_expression "fVar33 = *pfVar22" (identifier "fVar33") (= "=") (pointer_expression "*pfVar22" (* "*") (identifier "pfVar22"))) (; ";")) (expression_statement "fVar32 = pfVar22[2];" (assignment_expression "fVar32 = pfVar22[2]" (identifier "fVar32") (= "=") (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;" (assignment_expression "fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" (identifier "fVar35") (= "=") (binary_expression "fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41" (binary_expression "fVar43 * fVar32 + fVar49 * fVar33" (binary_expression "fVar43 * fVar32" (identifier "fVar43") (* "*") (identifier "fVar32")) (+ "+") (binary_expression "fVar49 * fVar33" (identifier "fVar49") (* "*") (identifier "fVar33"))) (+ "+") (binary_expression "fVar47 * fVar41" (identifier "fVar47") (* "*") (identifier "fVar41")))) (; ";")) (if_statement "if (fVar35 < fVar34) break;" (if "if") (parenthesized_expression "(fVar35 < fVar34)" (( "(") (binary_expression "fVar35 < fVar34" (identifier "fVar35") (< "<") (identifier "fVar34")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (fVar28 < fVar35) {\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" (if "if") (parenthesized_expression "(fVar28 < fVar35)" (( "(") (binary_expression "fVar28 < fVar35" (identifier "fVar28") (< "<") (identifier "fVar35")) () ")")) (compound_statement "{\n                  bVar2 = true;\n                  bVar15 = true;\n                  bVar17 = true;\n                  fVar29 = fVar33;\n                  fVar48 = fVar32;\n                  fVar44 = fVar41;\n                  fVar28 = fVar35;\n                }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" (identifier "bVar17") (= "=") (true "true")) (; ";")) (expression_statement "fVar29 = fVar33;" (assignment_expression "fVar29 = fVar33" (identifier "fVar29") (= "=") (identifier "fVar33")) (; ";")) (expression_statement "fVar48 = fVar32;" (assignment_expression "fVar48 = fVar32" (identifier "fVar48") (= "=") (identifier "fVar32")) (; ";")) (expression_statement "fVar44 = fVar41;" (assignment_expression "fVar44 = fVar41" (identifier "fVar44") (= "=") (identifier "fVar41")) (; ";")) (expression_statement "fVar28 = fVar35;" (assignment_expression "fVar28 = fVar35" (identifier "fVar28") (= "=") (identifier "fVar35")) (; ";")) (} "}"))) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar22 + 4" (identifier "pfVar22") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar32 = fVar46;" (assignment_expression "fVar32 = fVar46" (identifier "fVar32") (= "=") (identifier "fVar46")) (; ";")) (expression_statement "fVar33 = fVar30;" (assignment_expression "fVar33 = fVar30" (identifier "fVar33") (= "=") (identifier "fVar30")) (; ";")) (expression_statement "fVar41 = fVar31;" (assignment_expression "fVar41 = fVar31" (identifier "fVar41") (= "=") (identifier "fVar31")) (; ";")) (if_statement "if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;" (if "if") (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 == pfVar22)" (( "(") (binary_expression "pfVar21 + (int)unaff_s3 * 4 == pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" (identifier "pfVar21") (+ "+") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4"))) (== "==") (identifier "pfVar22")) () ")")) (goto_statement "goto LAB_00217194;" (goto "goto") (statement_identifier "LAB_00217194") (; ";"))) (} "}"))) (expression_statement "pfVar22 = pfVar22 + 4;" (assignment_expression "pfVar22 = pfVar22 + 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar22 + 4" (identifier "pfVar22") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (expression_statement "fVar34 = fVar35;" (assignment_expression "fVar34 = fVar35" (identifier "fVar34") (= "=") (identifier "fVar35")) (; ";")) (expression_statement "fVar46 = fVar32;" (assignment_expression "fVar46 = fVar32" (identifier "fVar46") (= "=") (identifier "fVar32")) (; ";")) (expression_statement "fVar30 = fVar33;" (assignment_expression "fVar30 = fVar33" (identifier "fVar30") (= "=") (identifier "fVar33")) (; ";")) (expression_statement "fVar31 = fVar41;" (assignment_expression "fVar31 = fVar41" (identifier "fVar31") (= "=") (identifier "fVar41")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pfVar21 + (int)unaff_s3 * 4 != pfVar22)" (( "(") (binary_expression "pfVar21 + (int)unaff_s3 * 4 != pfVar22" (binary_expression "pfVar21 + (int)unaff_s3 * 4" (identifier "pfVar21") (+ "+") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4"))) (!= "!=") (identifier "pfVar22")) () ")")) (; ";")) (labeled_statement "LAB_00217194:\n            if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" (statement_identifier "LAB_00217194") (: ":") (if_statement "if (bVar13) {\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n              local_47c = fVar33;\n              local_478 = fVar41;\n              local_474 = fVar32;\n            }" ({ "{") (expression_statement "local_47c = fVar33;" (assignment_expression "local_47c = fVar33" (identifier "local_47c") (= "=") (identifier "fVar33")) (; ";")) (expression_statement "local_478 = fVar41;" (assignment_expression "local_478 = fVar41" (identifier "local_478") (= "=") (identifier "fVar41")) (; ";")) (expression_statement "local_474 = fVar32;" (assignment_expression "local_474 = fVar32" (identifier "local_474") (= "=") (identifier "fVar32")) (; ";")) (} "}")))) (if_statement "if (bVar17) {\n              local_488 = fVar29;\n            }" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (compound_statement "{\n              local_488 = fVar29;\n            }" ({ "{") (expression_statement "local_488 = fVar29;" (assignment_expression "local_488 = fVar29" (identifier "local_488") (= "=") (identifier "fVar29")) (; ";")) (} "}"))) (if_statement "if (bVar15) {\n              local_484 = fVar44;\n            }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n              local_484 = fVar44;\n            }" ({ "{") (expression_statement "local_484 = fVar44;" (assignment_expression "local_484 = fVar44" (identifier "local_484") (= "=") (identifier "fVar44")) (; ";")) (} "}"))) (if_statement "if (bVar2) {\n              local_480 = fVar48;\n            }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n              local_480 = fVar48;\n            }" ({ "{") (expression_statement "local_480 = fVar48;" (assignment_expression "local_480 = fVar48" (identifier "local_480") (= "=") (identifier "fVar48")) (; ";")) (} "}"))) (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (local_47c < 0.0) goto LAB_002171e0;" (if "if") (parenthesized_expression "(local_47c < 0.0)" (( "(") (binary_expression "local_47c < 0.0" (identifier "local_47c") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_002171e0;" (goto "goto") (statement_identifier "LAB_002171e0") (; ";"))) (labeled_statement "LAB_002179a0:\n            if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" (statement_identifier "LAB_002179a0") (: ":") (if_statement "if (local_47c <= fVar28) {\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" (if "if") (parenthesized_expression "(local_47c <= fVar28)" (( "(") (binary_expression "local_47c <= fVar28" (identifier "local_47c") (<= "<=") (identifier "fVar28")) () ")")) (compound_statement "{\n              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n              goto LAB_002171e8;\n            }" ({ "{") (expression_statement "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "local_47c") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))))) (; ";")) (goto_statement "goto LAB_002171e8;" (goto "goto") (statement_identifier "LAB_002171e8") (; ";")) (} "}")))) (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (identifier "CONCAT44") (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (( "(") (identifier "uVar37") (, ",") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e68" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e68")) () ")")))) () ")")))) (; ";")) (if_statement "if (0.0 <= local_478) {\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" (if "if") (parenthesized_expression "(0.0 <= local_478)" (( "(") (binary_expression "0.0 <= local_478" (number_literal "0.0") (<= "<=") (identifier "local_478")) () ")")) (compound_statement "{\n              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n              goto LAB_002179c0;\n            }" ({ "{") (expression_statement "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (goto_statement "goto LAB_002179c0;" (goto "goto") (statement_identifier "LAB_002179c0") (; ";")) (} "}"))) (} "}")))) (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";")) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" (identifier "fVar29") (= "=") (identifier "local_474")) (; ";")) (expression_statement "fVar47 = local_488;" (assignment_expression "fVar47 = local_488" (identifier "fVar47") (= "=") (identifier "local_488")) (; ";")) (expression_statement "fVar49 = local_484;" (assignment_expression "fVar49 = local_484" (identifier "fVar49") (= "=") (identifier "local_484")) (; ";")) (expression_statement "fVar43 = local_480;" (assignment_expression "fVar43 = local_480" (identifier "fVar43") (= "=") (identifier "local_480")) (; ";")) (if_statement "if (0.0 <= local_474) goto LAB_002167c4;" (if "if") (parenthesized_expression "(0.0 <= local_474)" (( "(") (binary_expression "0.0 <= local_474" (number_literal "0.0") (<= "<=") (identifier "local_474")) () ")")) (goto_statement "goto LAB_002167c4;" (goto "goto") (statement_identifier "LAB_002167c4") (; ";"))) (labeled_statement "LAB_0021720c:\n          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (statement_identifier "LAB_0021720c") (: ":") (expression_statement "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";"))) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00217224;" (if "if") (parenthesized_expression "((float)uVar39 <= 0.0)" (( "(") (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar39")) (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00217224;" (goto "goto") (statement_identifier "LAB_00217224") (; ";"))) (labeled_statement "LAB_002167f4:\n          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (statement_identifier "LAB_002167f4") (: ":") (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" (identifier "fVar34") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar28)" (identifier "CONCAT44") (argument_list "(uVar37,fVar28)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar28") () ")")))) (; ";")) (labeled_statement "joined_r0x00216814:\n          if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" (statement_identifier "joined_r0x00216814") (: ":") (if_statement "if (fVar28 <= 0.0) {\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }\n          else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" (if "if") (parenthesized_expression "(fVar28 <= 0.0)" (( "(") (binary_expression "fVar28 <= 0.0" (identifier "fVar28") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" ({ "{") (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)()" (identifier "fVar28") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" (else "else") (compound_statement "{\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n          }" ({ "{") (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" (identifier "fVar28") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "(uVar39)" (( "(") (identifier "uVar39") () ")"))))) (; ";")) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (} "}"))))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar29);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar29)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar29)" (identifier "CONCAT44") (argument_list "(uVar37,fVar29)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar29") () ")")))) (; ";")) (if_statement "if (0.0 < fVar29) {\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }\n          else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" (if "if") (parenthesized_expression "(0.0 < fVar29)" (( "(") (binary_expression "0.0 < fVar29" (number_literal "0.0") (< "<") (identifier "fVar29")) () ")")) (compound_statement "{\n            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (0.0 <= fVar47) goto LAB_00216890;\nLAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\nLAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }\nLAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }\nLAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;\nLAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (0.0 < fVar28) goto LAB_00216938;\nLAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);\n            if (fVar47 <= 0.0) goto LAB_00216fc8;\nLAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);\n          }" ({ "{") (expression_statement "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);" (assignment_expression "local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39)" (identifier "local_474") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(uVar39)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)(uVar39)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "(uVar39)" (( "(") (identifier "uVar39") () ")"))))) (; ";")) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_47c") (= "=") (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "fVar34") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e54" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_474") (= "=") (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_474") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e54" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (identifier "local_478") (= "=") (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (identifier "fVar28") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e50" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e50")) () ")")))))) (; ";")) (if_statement "if (0.0 <= fVar47) goto LAB_00216890;" (if "if") (parenthesized_expression "(0.0 <= fVar47)" (( "(") (binary_expression "0.0 <= fVar47" (number_literal "0.0") (<= "<=") (identifier "fVar47")) () ")")) (goto_statement "goto LAB_00216890;" (goto "goto") (statement_identifier "LAB_00216890") (; ";"))) (labeled_statement "LAB_002170a0:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (statement_identifier "LAB_002170a0") (: ":") (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "CONCAT44") (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (( "(") (identifier "uVar37") (, ",") (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))) () ")")))) (; ";"))) (labeled_statement "LAB_002168a8:\n            if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" (statement_identifier "LAB_002168a8") (: ":") (if_statement "if (0.0 <= fVar49) {\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" (if "if") (parenthesized_expression "(0.0 <= fVar49)" (( "(") (binary_expression "0.0 <= fVar49" (number_literal "0.0") (<= "<=") (identifier "fVar49")) () ")")) (compound_statement "{\n              fVar28 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168bc;\n            }" ({ "{") (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(puVar9 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar9 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x5a8c)" (( "(") (binary_expression "puVar9 + -0x5a8c" (identifier "puVar9") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (goto_statement "goto LAB_002168bc;" (goto "goto") (statement_identifier "LAB_002168bc") (; ";")) (} "}")))) (labeled_statement "LAB_00217004:\n            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (statement_identifier "LAB_00217004") (: ":") (expression_statement "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";"))) (labeled_statement "LAB_002168d0:\n            if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" (statement_identifier "LAB_002168d0") (: ":") (if_statement "if (0.0 <= fVar43) {\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" (if "if") (parenthesized_expression "(0.0 <= fVar43)" (( "(") (binary_expression "0.0 <= fVar43" (number_literal "0.0") (<= "<=") (identifier "fVar43")) () ")")) (compound_statement "{\n              fVar47 = *(float *)(puVar9 + -0x5a8c);\n              goto LAB_002168e4;\n            }" ({ "{") (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(puVar9 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar9 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x5a8c)" (( "(") (binary_expression "puVar9 + -0x5a8c" (identifier "puVar9") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (goto_statement "goto LAB_002168e4;" (goto "goto") (statement_identifier "LAB_002168e4") (; ";")) (} "}")))) (labeled_statement "LAB_00216f6c:\n            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (statement_identifier "LAB_00216f6c") (: ":") (expression_statement "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";"))) (if_statement "if ((float)uVar39 <= 0.0) goto LAB_00216f7c;" (if "if") (parenthesized_expression "((float)uVar39 <= 0.0)" (( "(") (binary_expression "(float)uVar39 <= 0.0" (cast_expression "(float)uVar39" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar39")) (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00216f7c;" (goto "goto") (statement_identifier "LAB_00216f7c") (; ";"))) (labeled_statement "LAB_00216910:\n            unaff_s0 = PTR_UINT_003a8950;" (statement_identifier "LAB_00216910") (: ":") (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" (identifier "unaff_s0") (= "=") (identifier "PTR_UINT_003a8950")) (; ";"))) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" (identifier "fVar49") (= "=") (identifier "local_47c")) (; ";")) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" (identifier "fVar43") (= "=") (identifier "local_478")) (; ";")) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" (identifier "fVar29") (= "=") (identifier "local_474")) (; ";")) (expression_statement "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_floorf_003a94a0)()" (identifier "fVar34") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar28)" (identifier "CONCAT44") (argument_list "(uVar37,fVar28)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar28") () ")")))) (; ";")) (if_statement "if (0.0 < fVar28) goto LAB_00216938;" (if "if") (parenthesized_expression "(0.0 < fVar28)" (( "(") (binary_expression "0.0 < fVar28" (number_literal "0.0") (< "<") (identifier "fVar28")) () ")")) (goto_statement "goto LAB_00216938;" (goto "goto") (statement_identifier "LAB_00216938") (; ";"))) (labeled_statement "LAB_00216fa0:\n            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" (statement_identifier "LAB_00216fa0") (: ":") (expression_statement "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);" (assignment_expression "fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39)" (identifier "fVar28") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)(uVar39)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)(uVar39)" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "(uVar39)" (( "(") (identifier "uVar39") () ")"))))) (; ";"))) (if_statement "if (fVar47 <= 0.0) goto LAB_00216fc8;" (if "if") (parenthesized_expression "(fVar47 <= 0.0)" (( "(") (binary_expression "fVar47 <= 0.0" (identifier "fVar47") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00216fc8;" (goto "goto") (statement_identifier "LAB_00216fc8") (; ";"))) (labeled_statement "LAB_00216960:\n            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" (statement_identifier "LAB_00216960") (: ":") (expression_statement "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);" (assignment_expression "local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47)" (identifier "local_480") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)(fVar47)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)(fVar47)" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "(fVar47)" (( "(") (identifier "fVar47") () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" (else "else") (compound_statement "{\n            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);\n            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);\n            if (fVar47 < 0.0) goto LAB_002170a0;\nLAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }\n            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar28 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar49 < 0.0) goto LAB_00217004;\nLAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }\n            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            fVar47 = *(float *)(puVar9 + -0x5a8c);\n            if (fVar43 < 0.0) goto LAB_00216f6c;\nLAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_00216910;\nLAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar49 = local_47c;\n            fVar43 = local_478;\n            fVar29 = local_474;\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            if (fVar28 <= 0.0) goto LAB_00216fa0;\nLAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();\n            if (0.0 < fVar47) goto LAB_00216960;\nLAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();\n          }" ({ "{") (expression_statement "local_474 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_474 = (float)(*(code *)PTR_ceilf_003a9484)()" (identifier "local_474") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_47c") (= "=") (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "fVar34") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e54" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_474") (= "=") (binary_expression "local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_474") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e54)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e54" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (identifier "local_478") (= "=") (binary_expression "fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50)" (identifier "fVar28") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e50)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e50" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e50")) () ")")))))) (; ";")) (if_statement "if (fVar47 < 0.0) goto LAB_002170a0;" (if "if") (parenthesized_expression "(fVar47 < 0.0)" (( "(") (binary_expression "fVar47 < 0.0" (identifier "fVar47") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_002170a0;" (goto "goto") (statement_identifier "LAB_002170a0") (; ";"))) (labeled_statement "LAB_00216890:\n            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" (statement_identifier "LAB_00216890") (: ":") (if_statement "if (*(float *)(puVar9 + -0x5a8c) < fVar47) {\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" (if "if") (parenthesized_expression "(*(float *)(puVar9 + -0x5a8c) < fVar47)" (( "(") (binary_expression "*(float *)(puVar9 + -0x5a8c) < fVar47" (pointer_expression "*(float *)(puVar9 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar9 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x5a8c)" (( "(") (binary_expression "puVar9 + -0x5a8c" (identifier "puVar9") (+ "+") (number_literal "-0x5a8c")) () ")")))) (< "<") (identifier "fVar47")) () ")")) (compound_statement "{\n              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));\n              goto LAB_002168a8;\n            }" ({ "{") (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (identifier "CONCAT44") (argument_list "(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68))" (( "(") (identifier "uVar37") (, ",") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e68" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e68")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_002168a8;" (goto "goto") (statement_identifier "LAB_002168a8") (; ";")) (} "}")))) (expression_statement "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "CONCAT44") (argument_list "(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34))" (( "(") (identifier "uVar37") (, ",") (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "fVar47") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) () ")")))) (; ";")) (expression_statement "fVar28 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar28 = *(float *)(puVar9 + -0x5a8c)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(puVar9 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar9 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x5a8c)" (( "(") (binary_expression "puVar9 + -0x5a8c" (identifier "puVar9") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (fVar49 < 0.0) goto LAB_00217004;" (if "if") (parenthesized_expression "(fVar49 < 0.0)" (( "(") (binary_expression "fVar49 < 0.0" (identifier "fVar49") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00217004;" (goto "goto") (statement_identifier "LAB_00217004") (; ";"))) (labeled_statement "LAB_002168bc:\n            if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" (statement_identifier "LAB_002168bc") (: ":") (if_statement "if (fVar28 < fVar49) {\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" (if "if") (parenthesized_expression "(fVar28 < fVar49)" (( "(") (binary_expression "fVar28 < fVar49" (identifier "fVar28") (< "<") (identifier "fVar49")) () ")")) (compound_statement "{\n              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);\n              goto LAB_002168d0;\n            }" ({ "{") (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e64)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e64)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e64)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e64" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e64")) () ")"))))) (; ";")) (goto_statement "goto LAB_002168d0;" (goto "goto") (statement_identifier "LAB_002168d0") (; ";")) (} "}")))) (expression_statement "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (identifier "fVar49") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e6c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e6c")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))))) (; ";")) (expression_statement "fVar47 = *(float *)(puVar9 + -0x5a8c);" (assignment_expression "fVar47 = *(float *)(puVar9 + -0x5a8c)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(puVar9 + -0x5a8c)" (* "*") (cast_expression "(float *)(puVar9 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x5a8c)" (( "(") (binary_expression "puVar9 + -0x5a8c" (identifier "puVar9") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (if_statement "if (fVar43 < 0.0) goto LAB_00216f6c;" (if "if") (parenthesized_expression "(fVar43 < 0.0)" (( "(") (binary_expression "fVar43 < 0.0" (identifier "fVar43") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00216f6c;" (goto "goto") (statement_identifier "LAB_00216f6c") (; ";"))) (labeled_statement "LAB_002168e4:\n            if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (statement_identifier "LAB_002168e4") (: ":") (if_statement "if (fVar43 <= fVar47) {\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (if "if") (parenthesized_expression "(fVar43 <= fVar47)" (( "(") (binary_expression "fVar43 <= fVar47" (identifier "fVar43") (<= "<=") (identifier "fVar47")) () ")")) (compound_statement "{\n              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" ({ "{") (expression_statement "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar47") (= "=") (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "fVar43") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (else "else") (compound_statement "{\n              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" ({ "{") (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e68" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e68")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (0.0 < (float)uVar39) goto LAB_00216910;" (if "if") (parenthesized_expression "(0.0 < (float)uVar39)" (( "(") (binary_expression "0.0 < (float)uVar39" (number_literal "0.0") (< "<") (cast_expression "(float)uVar39" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar39"))) () ")")) (goto_statement "goto LAB_00216910;" (goto "goto") (statement_identifier "LAB_00216910") (; ";"))) (labeled_statement "LAB_00216f7c:\n            unaff_s0 = PTR_UINT_003a8950;" (statement_identifier "LAB_00216f7c") (: ":") (expression_statement "unaff_s0 = PTR_UINT_003a8950;" (assignment_expression "unaff_s0 = PTR_UINT_003a8950" (identifier "unaff_s0") (= "=") (identifier "PTR_UINT_003a8950")) (; ";"))) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "fVar49 = local_47c;" (assignment_expression "fVar49 = local_47c" (identifier "fVar49") (= "=") (identifier "local_47c")) (; ";")) (expression_statement "fVar43 = local_478;" (assignment_expression "fVar43 = local_478" (identifier "fVar43") (= "=") (identifier "local_478")) (; ";")) (expression_statement "fVar29 = local_474;" (assignment_expression "fVar29 = local_474" (identifier "fVar29") (= "=") (identifier "local_474")) (; ";")) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" (identifier "fVar34") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar28)" (identifier "CONCAT44") (argument_list "(uVar37,fVar28)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar28") () ")")))) (; ";")) (if_statement "if (fVar28 <= 0.0) goto LAB_00216fa0;" (if "if") (parenthesized_expression "(fVar28 <= 0.0)" (( "(") (binary_expression "fVar28 <= 0.0" (identifier "fVar28") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00216fa0;" (goto "goto") (statement_identifier "LAB_00216fa0") (; ";"))) (labeled_statement "LAB_00216938:\n            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" (statement_identifier "LAB_00216938") (: ":") (expression_statement "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();" (assignment_expression "fVar28 = (float)(*(code *)PTR_floorf_003a94a0)()" (identifier "fVar28") (= "=") (cast_expression "(float)(*(code *)PTR_floorf_003a94a0)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_floorf_003a94a0)()" (parenthesized_expression "(*(code *)PTR_floorf_003a94a0)" (( "(") (pointer_expression "*(code *)PTR_floorf_003a94a0" (* "*") (cast_expression "(code *)PTR_floorf_003a94a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floorf_003a94a0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (0.0 < fVar47) goto LAB_00216960;" (if "if") (parenthesized_expression "(0.0 < fVar47)" (( "(") (binary_expression "0.0 < fVar47" (number_literal "0.0") (< "<") (identifier "fVar47")) () ")")) (goto_statement "goto LAB_00216960;" (goto "goto") (statement_identifier "LAB_00216960") (; ";"))) (labeled_statement "LAB_00216fc8:\n            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" (statement_identifier "LAB_00216fc8") (: ":") (expression_statement "local_480 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "local_480 = (float)(*(code *)PTR_ceilf_003a9484)()" (identifier "local_480") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (} "}")))) (expression_statement "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c)" (identifier "fVar47") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e4c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e4c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e4c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e4c")) () ")"))))) (; ";")) (expression_statement "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54)" (identifier "local_488") (= "=") (binary_expression "fVar34 * *(float *)(unaff_s0 + -0x1e54)" (identifier "fVar34") (* "*") (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" (* "*") (cast_expression "(float *)(unaff_s0 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + -0x1e54)" (( "(") (binary_expression "unaff_s0 + -0x1e54" (identifier "unaff_s0") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48)" (identifier "fVar34") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e48)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e48)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e48" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e48")) () ")"))))) (; ";")) (expression_statement "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);" (assignment_expression "local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50)" (identifier "local_484") (= "=") (binary_expression "fVar28 * *(float *)(unaff_s0 + -0x1e50)" (identifier "fVar28") (* "*") (pointer_expression "*(float *)(unaff_s0 + -0x1e50)" (* "*") (cast_expression "(float *)(unaff_s0 + -0x1e50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + -0x1e50)" (( "(") (binary_expression "unaff_s0 + -0x1e50" (identifier "unaff_s0") (+ "+") (number_literal "-0x1e50")) () ")")))))) (; ";")) (expression_statement "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);" (assignment_expression "local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54)" (identifier "local_480") (= "=") (binary_expression "local_480 * *(float *)(unaff_s0 + -0x1e54)" (identifier "local_480") (* "*") (pointer_expression "*(float *)(unaff_s0 + -0x1e54)" (* "*") (cast_expression "(float *)(unaff_s0 + -0x1e54)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + -0x1e54)" (( "(") (binary_expression "unaff_s0 + -0x1e54" (identifier "unaff_s0") (+ "+") (number_literal "-0x1e54")) () ")")))))) (; ";")) (expression_statement "local_1fc = local_47c;" (assignment_expression "local_1fc = local_47c" (identifier "local_1fc") (= "=") (identifier "local_47c")) (; ";")) (expression_statement "local_1f8 = local_478;" (assignment_expression "local_1f8 = local_478" (identifier "local_1f8") (= "=") (identifier "local_478")) (; ";")) (expression_statement "local_1f4 = local_474;" (assignment_expression "local_1f4 = local_474" (identifier "local_1f4") (= "=") (identifier "local_474")) (; ";")) (expression_statement "local_1f0 = local_488;" (assignment_expression "local_1f0 = local_488" (identifier "local_1f0") (= "=") (identifier "local_488")) (; ";")) (expression_statement "local_1ec = local_484;" (assignment_expression "local_1ec = local_484" (identifier "local_1ec") (= "=") (identifier "local_484")) (; ";")) (expression_statement "local_1e8 = local_480;" (assignment_expression "local_1e8 = local_480" (identifier "local_1e8") (= "=") (identifier "local_480")) (; ";")) (expression_statement "local_1e4 = fVar49 * fVar47 + local_488 * fVar34;" (assignment_expression "local_1e4 = fVar49 * fVar47 + local_488 * fVar34" (identifier "local_1e4") (= "=") (binary_expression "fVar49 * fVar47 + local_488 * fVar34" (binary_expression "fVar49 * fVar47" (identifier "fVar49") (* "*") (identifier "fVar47")) (+ "+") (binary_expression "local_488 * fVar34" (identifier "local_488") (* "*") (identifier "fVar34")))) (; ";")) (expression_statement "local_1e0 = fVar43 * fVar47 + local_484 * fVar34;" (assignment_expression "local_1e0 = fVar43 * fVar47 + local_484 * fVar34" (identifier "local_1e0") (= "=") (binary_expression "fVar43 * fVar47 + local_484 * fVar34" (binary_expression "fVar43 * fVar47" (identifier "fVar43") (* "*") (identifier "fVar47")) (+ "+") (binary_expression "local_484 * fVar34" (identifier "local_484") (* "*") (identifier "fVar34")))) (; ";")) (expression_statement "local_1d8 = fVar49 * fVar34 + local_488 * fVar47;" (assignment_expression "local_1d8 = fVar49 * fVar34 + local_488 * fVar47" (identifier "local_1d8") (= "=") (binary_expression "fVar49 * fVar34 + local_488 * fVar47" (binary_expression "fVar49 * fVar34" (identifier "fVar49") (* "*") (identifier "fVar34")) (+ "+") (binary_expression "local_488 * fVar47" (identifier "local_488") (* "*") (identifier "fVar47")))) (; ";")) (expression_statement "local_1dc = fVar29 * fVar47 + local_480 * fVar34;" (assignment_expression "local_1dc = fVar29 * fVar47 + local_480 * fVar34" (identifier "local_1dc") (= "=") (binary_expression "fVar29 * fVar47 + local_480 * fVar34" (binary_expression "fVar29 * fVar47" (identifier "fVar29") (* "*") (identifier "fVar47")) (+ "+") (binary_expression "local_480 * fVar34" (identifier "local_480") (* "*") (identifier "fVar34")))) (; ";")) (expression_statement "local_1d4 = fVar43 * fVar34 + local_484 * fVar47;" (assignment_expression "local_1d4 = fVar43 * fVar34 + local_484 * fVar47" (identifier "local_1d4") (= "=") (binary_expression "fVar43 * fVar34 + local_484 * fVar47" (binary_expression "fVar43 * fVar34" (identifier "fVar43") (* "*") (identifier "fVar34")) (+ "+") (binary_expression "local_484 * fVar47" (identifier "local_484") (* "*") (identifier "fVar47")))) (; ";")) (expression_statement "local_1d0 = fVar29 * fVar34 + local_480 * fVar47;" (assignment_expression "local_1d0 = fVar29 * fVar34 + local_480 * fVar47" (identifier "local_1d0") (= "=") (binary_expression "fVar29 * fVar34 + local_480 * fVar47" (binary_expression "fVar29 * fVar34" (identifier "fVar29") (* "*") (identifier "fVar34")) (+ "+") (binary_expression "local_480 * fVar47" (identifier "local_480") (* "*") (identifier "fVar47")))) (; ";")) (if_statement "if (0 < (int)unaff_s3) {\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" (if "if") (parenthesized_expression "(0 < (int)unaff_s3)" (( "(") (binary_expression "0 < (int)unaff_s3" (number_literal "0") (< "<") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) () ")")) (compound_statement "{\n            pbVar11 = local_dc;\n            unaff_s3 = unaff_s3 + (int)pbVar11;\n            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);\n            do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);\n          }" ({ "{") (expression_statement "pbVar11 = local_dc;" (assignment_expression "pbVar11 = local_dc" (identifier "pbVar11") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "unaff_s3 = unaff_s3 + (int)pbVar11;" (assignment_expression "unaff_s3 = unaff_s3 + (int)pbVar11" (identifier "unaff_s3") (= "=") (binary_expression "unaff_s3 + (int)pbVar11" (identifier "unaff_s3") (+ "+") (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")))) (; ";")) (expression_statement "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60)" (identifier "fVar28") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e60)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e60)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e60" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e60")) () ")"))))) (; ";")) (do_statement "do {\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            } while (unaff_s3 != pbVar11);" (do "do") (compound_statement "{\n              iVar26 = 0;\n              pfVar22 = &local_1fc;\n              iVar6 = 0;\n              fVar47 = fVar28;\n              do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);\n              *pbVar11 = (byte)iVar16;\n              pbVar11 = pbVar11 + 1;\n              pfVar21 = pfVar21 + 4;\n            }" ({ "{") (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "pfVar22 = &local_1fc;" (assignment_expression "pfVar22 = &local_1fc" (identifier "pfVar22") (= "=") (pointer_expression "&local_1fc" (& "&") (identifier "local_1fc"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar47 = fVar28;" (assignment_expression "fVar47 = fVar28" (identifier "fVar47") (= "=") (identifier "fVar28")) (; ";")) (do_statement "do {\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              } while (iVar26 != 4);" (do "do") (compound_statement "{\n                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);\n                iVar16 = iVar26;\n                if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }\n                fVar47 = fVar49;\n                iVar26 = iVar26 + 1;\n                pfVar22 = pfVar22 + 3;\n                iVar6 = iVar16;\n              }" ({ "{") (expression_statement "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);" (assignment_expression "fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (identifier "fVar49") (= "=") (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +\n                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2])" (parenthesized_expression "(pfVar21[2] - pfVar22[2])" (( "(") (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]")) (- "-") (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]"))) () ")")) (* "*") (parenthesized_expression "(pfVar21[2] - pfVar22[2])" (( "(") (binary_expression "pfVar21[2] - pfVar22[2]" (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]")) (- "-") (subscript_expression "pfVar22[2]" (identifier "pfVar22") ([ "[") (number_literal "2") (] "]"))) () ")"))) (+ "+") (binary_expression "(*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (parenthesized_expression "(*pfVar21 - *pfVar22)" (( "(") (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (- "-") (pointer_expression "*pfVar22" (* "*") (identifier "pfVar22"))) () ")")) (* "*") (parenthesized_expression "(*pfVar21 - *pfVar22)" (( "(") (binary_expression "*pfVar21 - *pfVar22" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (- "-") (pointer_expression "*pfVar22" (* "*") (identifier "pfVar22"))) () ")")))) (+ "+") (binary_expression "(pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (parenthesized_expression "(pfVar21[1] - pfVar22[1])" (( "(") (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" (identifier "pfVar21") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pfVar22[1]" (identifier "pfVar22") ([ "[") (number_literal "1") (] "]"))) () ")")) (* "*") (parenthesized_expression "(pfVar21[1] - pfVar22[1])" (( "(") (binary_expression "pfVar21[1] - pfVar22[1]" (subscript_expression "pfVar21[1]" (identifier "pfVar21") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pfVar22[1]" (identifier "pfVar22") ([ "[") (number_literal "1") (] "]"))) () ")"))))) (; ";")) (expression_statement "iVar16 = iVar26;" (assignment_expression "iVar16 = iVar26" (identifier "iVar16") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (fVar47 <= fVar49) {\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" (if "if") (parenthesized_expression "(fVar47 <= fVar49)" (( "(") (binary_expression "fVar47 <= fVar49" (identifier "fVar47") (<= "<=") (identifier "fVar49")) () ")")) (compound_statement "{\n                  iVar16 = iVar6;\n                  fVar49 = fVar47;\n                }" ({ "{") (expression_statement "iVar16 = iVar6;" (assignment_expression "iVar16 = iVar6" (identifier "iVar16") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "fVar49 = fVar47;" (assignment_expression "fVar49 = fVar47" (identifier "fVar49") (= "=") (identifier "fVar47")) (; ";")) (} "}"))) (expression_statement "fVar47 = fVar49;" (assignment_expression "fVar47 = fVar49" (identifier "fVar47") (= "=") (identifier "fVar49")) (; ";")) (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" (identifier "pfVar22") (= "=") (binary_expression "pfVar22 + 3" (identifier "pfVar22") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar6 = iVar16;" (assignment_expression "iVar6 = iVar16" (identifier "iVar6") (= "=") (identifier "iVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar26 != 4)" (( "(") (binary_expression "iVar26 != 4" (identifier "iVar26") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "*pbVar11 = (byte)iVar16;" (assignment_expression "*pbVar11 = (byte)iVar16" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (cast_expression "(byte)iVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar16"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" (identifier "pfVar21") (= "=") (binary_expression "pfVar21 + 4" (identifier "pfVar21") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s3 != pbVar11)" (( "(") (binary_expression "unaff_s3 != pbVar11" (identifier "unaff_s3") (!= "!=") (identifier "pbVar11")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" (identifier "pbVar11") (= "=") (identifier "local_fc")) (; ";")) (do_statement "do {\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          } while (unaff_s1 != unaff_s2);" (do "do") (compound_statement "{\n            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }\n            unaff_s2 = unaff_s2 + 1;\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n          }" ({ "{") (while_statement "while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" (while "while") (parenthesized_expression "(fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN)" (( "(") (comma_expression "fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "fVar28 = *unaff_s2" (identifier "fVar28") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (, ",") (comma_expression "unaff_s4 = pfVar21, fVar28 != -NAN" (assignment_expression "unaff_s4 = pfVar21" (identifier "unaff_s4") (= "=") (identifier "pfVar21")) (, ",") (binary_expression "fVar28 != -NAN" (identifier "fVar28") (!= "!=") (unary_expression "-NAN" (- "-") (identifier "NAN"))))) () ")")) (compound_statement "{\n              unaff_s2 = unaff_s2 + 1;\n              *pbVar11 = local_dc[(int)fVar28];\n              pbVar11 = pbVar11 + 1;\n              if (unaff_s1 == unaff_s2) goto LAB_00216af4;\n            }" ({ "{") (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 1" (identifier "unaff_s2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar11 = local_dc[(int)fVar28];" (assignment_expression "*pbVar11 = local_dc[(int)fVar28]" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (subscript_expression "local_dc[(int)fVar28]" (identifier "local_dc") ([ "[") (cast_expression "(int)fVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar28")) (] "]"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s1 == unaff_s2) goto LAB_00216af4;" (if "if") (parenthesized_expression "(unaff_s1 == unaff_s2)" (( "(") (binary_expression "unaff_s1 == unaff_s2" (identifier "unaff_s1") (== "==") (identifier "unaff_s2")) () ")")) (goto_statement "goto LAB_00216af4;" (goto "goto") (statement_identifier "LAB_00216af4") (; ";"))) (} "}"))) (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 1" (identifier "unaff_s2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s1 != unaff_s2)" (( "(") (binary_expression "unaff_s1 != unaff_s2" (identifier "unaff_s1") (!= "!=") (identifier "unaff_s2")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" (else "else") (compound_statement "{\n          if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }\n          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);\n          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);\n          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);\n          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);\n          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);\n          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);\n          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);\n          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);\n          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);\n          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);\n          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);\n          local_43c = 0;\n          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);\n          local_42c = 0;\n          local_3d8 = 0.0;\n          local_3d4 = 0.0;\n          local_3d0 = 0.0;\n          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);\n          local_3cc = 0;\n          local_470 = fVar49;\n          local_46c = fVar47;\n          local_468 = fVar43;\n          local_454 = local_458;\n          local_450 = local_458;\n          local_44c = local_458;\n          local_440 = local_448;\n          local_430 = local_438;\n          local_424 = local_428;\n          local_420 = local_428;\n          local_41c = local_428;\n          local_414 = local_418;\n          local_410 = local_418;\n          local_404 = local_408;\n          local_400 = local_408;\n          local_3fc = local_408;\n          local_3f4 = local_3f8;\n          local_3f0 = local_3f8;\n          local_3ec = local_3f8;\n          local_3e4 = local_3e8;\n          local_3e0 = local_3e8;\n          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);\n          iVar6 = 0;\n          iVar26 = 0;\n          iVar16 = 0;\n          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);\n          pfVar22 = (float *)0x0;\n          unaff_s4 = (float *)0x0;\n          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;\n          do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);\n          pbVar11 = local_dc + (int)pfVar18 * 0x10;\n          if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }\n          if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }\n          if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }\n          if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }\n          pbVar11 = local_fc;\n          do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);\nLAB_002176b0:\n          unaff_s2 = pfVar21 + 1;\n        }" ({ "{") (if_statement "if (unaff_s0 == (byte *)0x0) {\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" (if "if") (parenthesized_expression "(unaff_s0 == (byte *)0x0)" (( "(") (binary_expression "unaff_s0 == (byte *)0x0" (identifier "unaff_s0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));\n            fVar29 = 0.0;\n            fVar34 = 0.0;\n            fVar47 = 0.0;\n            fVar49 = 0.0;\n            fVar43 = 0.0;\nLAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);\nLAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;\nLAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }\n            if (0.0 < (float)uVar39) goto LAB_002167f4;\nLAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);\n            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();\n            uVar39 = CONCAT44(uVar37,fVar28);\n            goto joined_r0x00216814;\n          }" ({ "{") (labeled_statement "LAB_00216788:\n            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (statement_identifier "LAB_00216788") (: ":") (expression_statement "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));" (assignment_expression "uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (identifier "CONCAT44") (argument_list "(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34))" (( "(") (identifier "uVar37") (, ",") (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))) () ")")))) (; ";"))) (expression_statement "fVar29 = 0.0;" (assignment_expression "fVar29 = 0.0" (identifier "fVar29") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar34 = 0.0;" (assignment_expression "fVar34 = 0.0" (identifier "fVar34") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar47 = 0.0;" (assignment_expression "fVar47 = 0.0" (identifier "fVar47") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar49 = 0.0;" (assignment_expression "fVar49 = 0.0" (identifier "fVar49") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar43 = 0.0;" (assignment_expression "fVar43 = 0.0" (identifier "fVar43") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_002167a4:\n            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (statement_identifier "LAB_002167a4") (: ":") (expression_statement "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar28") (= "=") (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +\n                     *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c)" (identifier "fVar34") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e6c)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e6c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e6c")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))))) (; ";"))) (labeled_statement "LAB_002167b4:\n            if (fVar29 < 0.0) goto LAB_0021720c;" (statement_identifier "LAB_002167b4") (: ":") (if_statement "if (fVar29 < 0.0) goto LAB_0021720c;" (if "if") (parenthesized_expression "(fVar29 < 0.0)" (( "(") (binary_expression "fVar29 < 0.0" (identifier "fVar29") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_0021720c;" (goto "goto") (statement_identifier "LAB_0021720c") (; ";")))) (labeled_statement "LAB_002167c4:\n            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (statement_identifier "LAB_002167c4") (: ":") (if_statement "if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }\n            else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (if "if") (parenthesized_expression "(fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c))" (( "(") (binary_expression "fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "fVar29") (<= "<=") (pointer_expression "*(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) () ")")) (compound_statement "{\n              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);\n            }" ({ "{") (expression_statement "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "fVar29") (= "=") (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +\n                       *(float *)(PTR_s_courses_003a88ec + -0xe34)" (binary_expression "fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "fVar29") (* "*") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (+ "+") (pointer_expression "*(float *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(float *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" (else "else") (compound_statement "{\n              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);\n            }" ({ "{") (expression_statement "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);" (assignment_expression "fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68)" (identifier "fVar29") (= "=") (pointer_expression "*(float *)(PTR_UINT_003a8950 + -0x1e68)" (* "*") (cast_expression "(float *)(PTR_UINT_003a8950 + -0x1e68)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e68)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e68" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e68")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (0.0 < (float)uVar39) goto LAB_002167f4;" (if "if") (parenthesized_expression "(0.0 < (float)uVar39)" (( "(") (binary_expression "0.0 < (float)uVar39" (number_literal "0.0") (< "<") (cast_expression "(float)uVar39" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar39"))) () ")")) (goto_statement "goto LAB_002167f4;" (goto "goto") (statement_identifier "LAB_002167f4") (; ";"))) (labeled_statement "LAB_00217224:\n            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (statement_identifier "LAB_00217224") (: ":") (expression_statement "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20)" (identifier "uVar37") (= "=") (call_expression "(undefined4)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();" (assignment_expression "fVar34 = (float)(*(code *)PTR_ceilf_003a9484)()" (identifier "fVar34") (= "=") (cast_expression "(float)(*(code *)PTR_ceilf_003a9484)()" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "(*(code *)PTR_ceilf_003a9484)()" (parenthesized_expression "(*(code *)PTR_ceilf_003a9484)" (( "(") (pointer_expression "*(code *)PTR_ceilf_003a9484" (* "*") (cast_expression "(code *)PTR_ceilf_003a9484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceilf_003a9484"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar39 = CONCAT44(uVar37,fVar28);" (assignment_expression "uVar39 = CONCAT44(uVar37,fVar28)" (identifier "uVar39") (= "=") (call_expression "CONCAT44(uVar37,fVar28)" (identifier "CONCAT44") (argument_list "(uVar37,fVar28)" (( "(") (identifier "uVar37") (, ",") (identifier "fVar28") () ")")))) (; ";")) (goto_statement "goto joined_r0x00216814;" (goto "goto") (statement_identifier "joined_r0x00216814") (; ";")) (} "}"))) (expression_statement "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);" (assignment_expression "local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (identifier "local_458") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (* "*") (cast_expression "(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5a8c")) () ")"))))) (; ";")) (expression_statement "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);" (assignment_expression "local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (identifier "local_428") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (* "*") (cast_expression "(undefined4 *)(PTR_s_courses_003a88ec + -0xe34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0xe34)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0xe34" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0xe34")) () ")"))))) (; ";")) (expression_statement "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);" (assignment_expression "local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" (identifier "local_408") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e44)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e44" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e44")) () ")"))))) (; ";")) (expression_statement "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);" (assignment_expression "local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" (identifier "local_418") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e48)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e48" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e48")) () ")"))))) (; ";")) (expression_statement "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);" (assignment_expression "local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" (identifier "local_3e8") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e4c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e4c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e4c")) () ")"))))) (; ";")) (expression_statement "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);" (assignment_expression "local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" (identifier "local_3f8") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e38)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e38" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e38")) () ")"))))) (; ";")) (expression_statement "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);" (assignment_expression "pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674)" (identifier "pcVar25") (= "=") (cast_expression "(code *)(PTR_LAB_003a8bc4 + 0x2674)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a8bc4 + 0x2674)" (( "(") (binary_expression "PTR_LAB_003a8bc4 + 0x2674" (identifier "PTR_LAB_003a8bc4") (+ "+") (number_literal "0x2674")) () ")")))) (; ";")) (expression_statement "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);" (assignment_expression "local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" (identifier "local_40c") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e40)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e40" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e40")) () ")"))))) (; ";")) (expression_statement "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);" (assignment_expression "local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" (identifier "local_444") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e6c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e6c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e6c")) () ")"))))) (; ";")) (expression_statement "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);" (assignment_expression "local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" (identifier "local_3dc") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e3c)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e3c" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e3c")) () ")"))))) (; ";")) (expression_statement "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);" (assignment_expression "local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" (identifier "local_448") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e70)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e70" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e70")) () ")"))))) (; ";")) (expression_statement "local_43c = 0;" (assignment_expression "local_43c = 0" (identifier "local_43c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);" (assignment_expression "local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" (identifier "local_438") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e54)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e54" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e54")) () ")"))))) (; ";")) (expression_statement "local_42c = 0;" (assignment_expression "local_42c = 0" (identifier "local_42c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3d8 = 0.0;" (assignment_expression "local_3d8 = 0.0" (identifier "local_3d8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_3d4 = 0.0;" (assignment_expression "local_3d4 = 0.0" (identifier "local_3d4") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_3d0 = 0.0;" (assignment_expression "local_3d0 = 0.0" (identifier "local_3d0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);" (assignment_expression "local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" (identifier "local_434") (= "=") (pointer_expression "*(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" (* "*") (cast_expression "(undefined4 *)(PTR_UINT_003a8950 + -0x1e50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e50)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e50" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e50")) () ")"))))) (; ";")) (expression_statement "local_3cc = 0;" (assignment_expression "local_3cc = 0" (identifier "local_3cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_470 = fVar49;" (assignment_expression "local_470 = fVar49" (identifier "local_470") (= "=") (identifier "fVar49")) (; ";")) (expression_statement "local_46c = fVar47;" (assignment_expression "local_46c = fVar47" (identifier "local_46c") (= "=") (identifier "fVar47")) (; ";")) (expression_statement "local_468 = fVar43;" (assignment_expression "local_468 = fVar43" (identifier "local_468") (= "=") (identifier "fVar43")) (; ";")) (expression_statement "local_454 = local_458;" (assignment_expression "local_454 = local_458" (identifier "local_454") (= "=") (identifier "local_458")) (; ";")) (expression_statement "local_450 = local_458;" (assignment_expression "local_450 = local_458" (identifier "local_450") (= "=") (identifier "local_458")) (; ";")) (expression_statement "local_44c = local_458;" (assignment_expression "local_44c = local_458" (identifier "local_44c") (= "=") (identifier "local_458")) (; ";")) (expression_statement "local_440 = local_448;" (assignment_expression "local_440 = local_448" (identifier "local_440") (= "=") (identifier "local_448")) (; ";")) (expression_statement "local_430 = local_438;" (assignment_expression "local_430 = local_438" (identifier "local_430") (= "=") (identifier "local_438")) (; ";")) (expression_statement "local_424 = local_428;" (assignment_expression "local_424 = local_428" (identifier "local_424") (= "=") (identifier "local_428")) (; ";")) (expression_statement "local_420 = local_428;" (assignment_expression "local_420 = local_428" (identifier "local_420") (= "=") (identifier "local_428")) (; ";")) (expression_statement "local_41c = local_428;" (assignment_expression "local_41c = local_428" (identifier "local_41c") (= "=") (identifier "local_428")) (; ";")) (expression_statement "local_414 = local_418;" (assignment_expression "local_414 = local_418" (identifier "local_414") (= "=") (identifier "local_418")) (; ";")) (expression_statement "local_410 = local_418;" (assignment_expression "local_410 = local_418" (identifier "local_410") (= "=") (identifier "local_418")) (; ";")) (expression_statement "local_404 = local_408;" (assignment_expression "local_404 = local_408" (identifier "local_404") (= "=") (identifier "local_408")) (; ";")) (expression_statement "local_400 = local_408;" (assignment_expression "local_400 = local_408" (identifier "local_400") (= "=") (identifier "local_408")) (; ";")) (expression_statement "local_3fc = local_408;" (assignment_expression "local_3fc = local_408" (identifier "local_3fc") (= "=") (identifier "local_408")) (; ";")) (expression_statement "local_3f4 = local_3f8;" (assignment_expression "local_3f4 = local_3f8" (identifier "local_3f4") (= "=") (identifier "local_3f8")) (; ";")) (expression_statement "local_3f0 = local_3f8;" (assignment_expression "local_3f0 = local_3f8" (identifier "local_3f0") (= "=") (identifier "local_3f8")) (; ";")) (expression_statement "local_3ec = local_3f8;" (assignment_expression "local_3ec = local_3f8" (identifier "local_3ec") (= "=") (identifier "local_3f8")) (; ";")) (expression_statement "local_3e4 = local_3e8;" (assignment_expression "local_3e4 = local_3e8" (identifier "local_3e4") (= "=") (identifier "local_3e8")) (; ";")) (expression_statement "local_3e0 = local_3e8;" (assignment_expression "local_3e0 = local_3e8" (identifier "local_3e0") (= "=") (identifier "local_3e8")) (; ";")) (expression_statement "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);" (call_expression "FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" (identifier "FUN_00212674") (argument_list "(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0)" (( "(") (identifier "unaff_s0") (, ",") (identifier "pfVar21") (, ",") (identifier "fVar49") (, ",") (identifier "fVar47") (, ",") (identifier "fVar43") (, ",") (pointer_expression "&local_1fc" (& "&") (identifier "local_1fc")) (, ",") (pointer_expression "&local_3d8" (& "&") (identifier "local_3d8")) (, ",") (identifier "local_dc") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);" (assignment_expression "uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" (identifier "uVar45") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_UINT_003a8950 + -0x1e60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003a8950 + -0x1e60)" (( "(") (binary_expression "PTR_UINT_003a8950 + -0x1e60" (identifier "PTR_UINT_003a8950") (+ "+") (number_literal "-0x1e60")) () ")"))))) (; ";")) (expression_statement "pfVar22 = (float *)0x0;" (assignment_expression "pfVar22 = (float *)0x0" (identifier "pfVar22") (= "=") (cast_expression "(float *)0x0" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s4 = (float *)0x0;" (assignment_expression "unaff_s4 = (float *)0x0" (identifier "unaff_s4") (= "=") (cast_expression "(float *)0x0" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar9 = PTR_LAB_003a8bc8 + -0x7df4;" (assignment_expression "puVar9 = PTR_LAB_003a8bc8 + -0x7df4" (identifier "puVar9") (= "=") (binary_expression "PTR_LAB_003a8bc8 + -0x7df4" (identifier "PTR_LAB_003a8bc8") (+ "+") (number_literal "-0x7df4"))) (; ";")) (do_statement "do {\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          } while (iVar14 != 0);" (do "do") (compound_statement "{\n            uVar5 = (uint)uVar45;\n            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);\n            local_3c8 = unaff_s0;\n            local_3c4 = &local_458;\n            local_3c0 = &local_47c;\n            local_3bc = &local_488;\n            local_3b8 = &local_448;\n            local_3b4 = &local_438;\n            local_3b0 = &local_428;\n            local_3ac = &local_418;\n            local_3a8 = &local_1fc;\n            local_3a4 = &local_408;\n            local_3a0 = &local_3f8;\n            local_39c = &local_3e8;\n            local_398 = &local_3d8;\n            local_394 = uVar5;\n            local_390 = unaff_s4;\n            local_38c = iVar6;\n            local_388 = iVar26;\n            local_384 = iVar16;\n            local_380 = pfVar22;\n            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);\n            iVar16 = local_384;\n            iVar26 = local_388;\n            iVar6 = local_38c;\n            unaff_s4 = local_390;\n            uVar45 = (ulonglong)local_394;\n            pfVar18 = unaff_s4;\n            if (pfVar22 != local_390) break;\n            pfVar22 = (float *)((int)pfVar22 + 1);\n            if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }\n            local_45c = local_480 - local_474;\n            local_460 = local_484 - local_478;\n            local_464 = local_488 - local_47c;\n            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);\n          }" ({ "{") (expression_statement "uVar5 = (uint)uVar45;" (assignment_expression "uVar5 = (uint)uVar45" (identifier "uVar5") (= "=") (cast_expression "(uint)uVar45" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar45"))) (; ";")) (expression_statement "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7);" (call_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)(7)" (parenthesized_expression "(*(code *)PTR_GetMagickResourceLimit_003a913c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickResourceLimit_003a913c" (* "*") (cast_expression "(code *)PTR_GetMagickResourceLimit_003a913c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickResourceLimit_003a913c"))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "local_3c8 = unaff_s0;" (assignment_expression "local_3c8 = unaff_s0" (identifier "local_3c8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "local_3c4 = &local_458;" (assignment_expression "local_3c4 = &local_458" (identifier "local_3c4") (= "=") (pointer_expression "&local_458" (& "&") (identifier "local_458"))) (; ";")) (expression_statement "local_3c0 = &local_47c;" (assignment_expression "local_3c0 = &local_47c" (identifier "local_3c0") (= "=") (pointer_expression "&local_47c" (& "&") (identifier "local_47c"))) (; ";")) (expression_statement "local_3bc = &local_488;" (assignment_expression "local_3bc = &local_488" (identifier "local_3bc") (= "=") (pointer_expression "&local_488" (& "&") (identifier "local_488"))) (; ";")) (expression_statement "local_3b8 = &local_448;" (assignment_expression "local_3b8 = &local_448" (identifier "local_3b8") (= "=") (pointer_expression "&local_448" (& "&") (identifier "local_448"))) (; ";")) (expression_statement "local_3b4 = &local_438;" (assignment_expression "local_3b4 = &local_438" (identifier "local_3b4") (= "=") (pointer_expression "&local_438" (& "&") (identifier "local_438"))) (; ";")) (expression_statement "local_3b0 = &local_428;" (assignment_expression "local_3b0 = &local_428" (identifier "local_3b0") (= "=") (pointer_expression "&local_428" (& "&") (identifier "local_428"))) (; ";")) (expression_statement "local_3ac = &local_418;" (assignment_expression "local_3ac = &local_418" (identifier "local_3ac") (= "=") (pointer_expression "&local_418" (& "&") (identifier "local_418"))) (; ";")) (expression_statement "local_3a8 = &local_1fc;" (assignment_expression "local_3a8 = &local_1fc" (identifier "local_3a8") (= "=") (pointer_expression "&local_1fc" (& "&") (identifier "local_1fc"))) (; ";")) (expression_statement "local_3a4 = &local_408;" (assignment_expression "local_3a4 = &local_408" (identifier "local_3a4") (= "=") (pointer_expression "&local_408" (& "&") (identifier "local_408"))) (; ";")) (expression_statement "local_3a0 = &local_3f8;" (assignment_expression "local_3a0 = &local_3f8" (identifier "local_3a0") (= "=") (pointer_expression "&local_3f8" (& "&") (identifier "local_3f8"))) (; ";")) (expression_statement "local_39c = &local_3e8;" (assignment_expression "local_39c = &local_3e8" (identifier "local_39c") (= "=") (pointer_expression "&local_3e8" (& "&") (identifier "local_3e8"))) (; ";")) (expression_statement "local_398 = &local_3d8;" (assignment_expression "local_398 = &local_3d8" (identifier "local_398") (= "=") (pointer_expression "&local_3d8" (& "&") (identifier "local_3d8"))) (; ";")) (expression_statement "local_394 = uVar5;" (assignment_expression "local_394 = uVar5" (identifier "local_394") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_390 = unaff_s4;" (assignment_expression "local_390 = unaff_s4" (identifier "local_390") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "local_38c = iVar6;" (assignment_expression "local_38c = iVar6" (identifier "local_38c") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "local_388 = iVar26;" (assignment_expression "local_388 = iVar26" (identifier "local_388") (= "=") (identifier "iVar26")) (; ";")) (expression_statement "local_384 = iVar16;" (assignment_expression "local_384 = iVar16" (identifier "local_384") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "local_380 = pfVar22;" (assignment_expression "local_380 = pfVar22" (identifier "local_380") (= "=") (identifier "pfVar22")) (; ";")) (expression_statement "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);" (call_expression "(*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0)" (parenthesized_expression "(*(code *)PTR_GOMP_parallel_003a9198)" (( "(") (pointer_expression "*(code *)PTR_GOMP_parallel_003a9198" (* "*") (cast_expression "(code *)PTR_GOMP_parallel_003a9198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GOMP_parallel_003a9198"))) () ")")) (argument_list "(puVar9,&local_3c8,extraout_v1,0)" (( "(") (identifier "puVar9") (, ",") (pointer_expression "&local_3c8" (& "&") (identifier "local_3c8")) (, ",") (identifier "extraout_v1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar16 = local_384;" (assignment_expression "iVar16 = local_384" (identifier "iVar16") (= "=") (identifier "local_384")) (; ";")) (expression_statement "iVar26 = local_388;" (assignment_expression "iVar26 = local_388" (identifier "iVar26") (= "=") (identifier "local_388")) (; ";")) (expression_statement "iVar6 = local_38c;" (assignment_expression "iVar6 = local_38c" (identifier "iVar6") (= "=") (identifier "local_38c")) (; ";")) (expression_statement "unaff_s4 = local_390;" (assignment_expression "unaff_s4 = local_390" (identifier "unaff_s4") (= "=") (identifier "local_390")) (; ";")) (expression_statement "uVar45 = (ulonglong)local_394;" (assignment_expression "uVar45 = (ulonglong)local_394" (identifier "uVar45") (= "=") (cast_expression "(ulonglong)local_394" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_394"))) (; ";")) (expression_statement "pfVar18 = unaff_s4;" (assignment_expression "pfVar18 = unaff_s4" (identifier "pfVar18") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (pfVar22 != local_390) break;" (if "if") (parenthesized_expression "(pfVar22 != local_390)" (( "(") (binary_expression "pfVar22 != local_390" (identifier "pfVar22") (!= "!=") (identifier "local_390")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pfVar22 = (float *)((int)pfVar22 + 1);" (assignment_expression "pfVar22 = (float *)((int)pfVar22 + 1)" (identifier "pfVar22") (= "=") (cast_expression "(float *)((int)pfVar22 + 1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pfVar22 + 1)" (( "(") (binary_expression "(int)pfVar22 + 1" (cast_expression "(int)pfVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pfVar22")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pfVar22 == (float *)&DAT_00000008) {\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" (if "if") (parenthesized_expression "(pfVar22 == (float *)&DAT_00000008)" (( "(") (binary_expression "pfVar22 == (float *)&DAT_00000008" (identifier "pfVar22") (== "==") (cast_expression "(float *)&DAT_00000008" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")))) () ")")) (compound_statement "{\n              pfVar18 = (float *)&DAT_00000007;\n              break;\n            }" ({ "{") (expression_statement "pfVar18 = (float *)&DAT_00000007;" (assignment_expression "pfVar18 = (float *)&DAT_00000007" (identifier "pfVar18") (= "=") (cast_expression "(float *)&DAT_00000007" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000007" (& "&") (identifier "DAT_00000007")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_45c = local_480 - local_474;" (assignment_expression "local_45c = local_480 - local_474" (identifier "local_45c") (= "=") (binary_expression "local_480 - local_474" (identifier "local_480") (- "-") (identifier "local_474"))) (; ";")) (expression_statement "local_460 = local_484 - local_478;" (assignment_expression "local_460 = local_484 - local_478" (identifier "local_460") (= "=") (binary_expression "local_484 - local_478" (identifier "local_484") (- "-") (identifier "local_478"))) (; ";")) (expression_statement "local_464 = local_488 - local_47c;" (assignment_expression "local_464 = local_488 - local_47c" (identifier "local_464") (= "=") (binary_expression "local_488 - local_47c" (identifier "local_488") (- "-") (identifier "local_47c"))) (; ";")) (expression_statement "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22);" (assignment_expression "iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" (identifier "iVar14") (= "=") (call_expression "(*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8\n                                ,local_dc,pfVar22)" (( "(") (identifier "unaff_s0") (, ",") (identifier "pfVar21") (, ",") (identifier "local_464") (, ",") (identifier "local_460") (, ",") (identifier "local_45c") (, ",") (pointer_expression "&local_1fc" (& "&") (identifier "local_1fc")) (, ",") (pointer_expression "&local_3d8" (& "&") (identifier "local_3d8")) (, ",") (identifier "local_dc") (, ",") (identifier "pfVar22") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pbVar11 = local_dc + (int)pfVar18 * 0x10;" (assignment_expression "pbVar11 = local_dc + (int)pfVar18 * 0x10" (identifier "pbVar11") (= "=") (binary_expression "local_dc + (int)pfVar18 * 0x10" (identifier "local_dc") (+ "+") (binary_expression "(int)pfVar18 * 0x10" (cast_expression "(int)pfVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pfVar18")) (* "*") (number_literal "0x10")))) (; ";")) (if_statement "if (0 < iVar6) {\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n            pbVar10 = pbVar11;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);\n          }" ({ "{") (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" (identifier "pbVar10") (= "=") (identifier "pbVar11")) (; ";")) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            } while (pbVar11 + iVar6 != pbVar10);" (do "do") (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 0;\n            }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_ec[bVar1] = 0;" (assignment_expression "local_ec[bVar1] = 0" (subscript_expression "local_ec[bVar1]" (identifier "local_ec") ([ "[") (identifier "bVar1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar11 + iVar6 != pbVar10)" (( "(") (binary_expression "pbVar11 + iVar6 != pbVar10" (binary_expression "pbVar11 + iVar6" (identifier "pbVar11") (+ "+") (identifier "iVar6")) (!= "!=") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar6 < iVar26) {\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" (if "if") (parenthesized_expression "(iVar6 < iVar26)" (( "(") (binary_expression "iVar6 < iVar26" (identifier "iVar6") (< "<") (identifier "iVar26")) () ")")) (compound_statement "{\n            pbVar10 = pbVar11 + iVar6;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);\n          }" ({ "{") (expression_statement "pbVar10 = pbVar11 + iVar6;" (assignment_expression "pbVar10 = pbVar11 + iVar6" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + iVar6" (identifier "pbVar11") (+ "+") (identifier "iVar6"))) (; ";")) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            } while (pbVar11 + iVar26 != pbVar10);" (do "do") (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 2;\n            }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_ec[bVar1] = 2;" (assignment_expression "local_ec[bVar1] = 2" (subscript_expression "local_ec[bVar1]" (identifier "local_ec") ([ "[") (identifier "bVar1") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar11 + iVar26 != pbVar10)" (( "(") (binary_expression "pbVar11 + iVar26 != pbVar10" (binary_expression "pbVar11 + iVar26" (identifier "pbVar11") (+ "+") (identifier "iVar26")) (!= "!=") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar26 < iVar16) {\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" (if "if") (parenthesized_expression "(iVar26 < iVar16)" (( "(") (binary_expression "iVar26 < iVar16" (identifier "iVar26") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n            pbVar10 = pbVar11 + iVar26;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);\n          }" ({ "{") (expression_statement "pbVar10 = pbVar11 + iVar26;" (assignment_expression "pbVar10 = pbVar11 + iVar26" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + iVar26" (identifier "pbVar11") (+ "+") (identifier "iVar26"))) (; ";")) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            } while (pbVar11 + iVar16 != pbVar10);" (do "do") (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 3;\n            }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_ec[bVar1] = 3;" (assignment_expression "local_ec[bVar1] = 3" (subscript_expression "local_ec[bVar1]" (identifier "local_ec") ([ "[") (identifier "bVar1") (] "]")) (= "=") (number_literal "3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar11 + iVar16 != pbVar10)" (( "(") (binary_expression "pbVar11 + iVar16 != pbVar10" (binary_expression "pbVar11 + iVar16" (identifier "pbVar11") (+ "+") (identifier "iVar16")) (!= "!=") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar16 < (int)unaff_s3) {\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" (if "if") (parenthesized_expression "(iVar16 < (int)unaff_s3)" (( "(") (binary_expression "iVar16 < (int)unaff_s3" (identifier "iVar16") (< "<") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) () ")")) (compound_statement "{\n            pbVar10 = pbVar11 + iVar16;\n            do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);\n          }" ({ "{") (expression_statement "pbVar10 = pbVar11 + iVar16;" (assignment_expression "pbVar10 = pbVar11 + iVar16" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + iVar16" (identifier "pbVar11") (+ "+") (identifier "iVar16"))) (; ";")) (do_statement "do {\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            } while (pbVar11 + (int)unaff_s3 != pbVar10);" (do "do") (compound_statement "{\n              bVar1 = *pbVar10;\n              pbVar10 = pbVar10 + 1;\n              local_ec[bVar1] = 1;\n            }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_ec[bVar1] = 1;" (assignment_expression "local_ec[bVar1] = 1" (subscript_expression "local_ec[bVar1]" (identifier "local_ec") ([ "[") (identifier "bVar1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar11 + (int)unaff_s3 != pbVar10)" (( "(") (binary_expression "pbVar11 + (int)unaff_s3 != pbVar10" (binary_expression "pbVar11 + (int)unaff_s3" (identifier "pbVar11") (+ "+") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) (!= "!=") (identifier "pbVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar11 = local_fc;" (assignment_expression "pbVar11 = local_fc" (identifier "pbVar11") (= "=") (identifier "local_fc")) (; ";")) (do_statement "do {\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          } while (unaff_s1 != pfVar21 + 1);" (do "do") (compound_statement "{\n            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }\n            *pbVar11 = 3;\n            pbVar11 = pbVar11 + 1;\n            unaff_s2 = pfVar21 + 1;\n          }" ({ "{") (while_statement "while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" (while "while") (parenthesized_expression "(pfVar21 = unaff_s2, *pfVar21 != -NAN)" (( "(") (comma_expression "pfVar21 = unaff_s2, *pfVar21 != -NAN" (assignment_expression "pfVar21 = unaff_s2" (identifier "pfVar21") (= "=") (identifier "unaff_s2")) (, ",") (binary_expression "*pfVar21 != -NAN" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (!= "!=") (unary_expression "-NAN" (- "-") (identifier "NAN")))) () ")")) (compound_statement "{\n              *pbVar11 = local_ec[(int)*pfVar21];\n              pbVar11 = pbVar11 + 1;\n              unaff_s2 = pfVar21 + 1;\n              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;\n            }" ({ "{") (expression_statement "*pbVar11 = local_ec[(int)*pfVar21];" (assignment_expression "*pbVar11 = local_ec[(int)*pfVar21]" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (subscript_expression "local_ec[(int)*pfVar21]" (identifier "local_ec") ([ "[") (cast_expression "(int)*pfVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21"))) (] "]"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;" (if "if") (parenthesized_expression "(unaff_s1 == pfVar21 + 1)" (( "(") (binary_expression "unaff_s1 == pfVar21 + 1" (identifier "unaff_s1") (== "==") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002176b0;" (goto "goto") (statement_identifier "LAB_002176b0") (; ";"))) (} "}"))) (expression_statement "*pbVar11 = 3;" (assignment_expression "*pbVar11 = 3" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s1 != pfVar21 + 1)" (( "(") (binary_expression "unaff_s1 != pfVar21 + 1" (identifier "unaff_s1") (!= "!=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) () ")")) (; ";")) (labeled_statement "LAB_002176b0:\n          unaff_s2 = pfVar21 + 1;" (statement_identifier "LAB_002176b0") (: ":") (expression_statement "unaff_s2 = pfVar21 + 1;" (assignment_expression "unaff_s2 = pfVar21 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pfVar21 + 1" (identifier "pfVar21") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (labeled_statement "LAB_00216af4:\n        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" (statement_identifier "LAB_00216af4") (: ":") (expression_statement "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);" (call_expression "FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" (identifier "FUN_002128dc") (argument_list "(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc)" (( "(") (identifier "param_1") (, ",") (identifier "local_47c") (, ",") (identifier "local_478") (, ",") (identifier "local_474") (, ",") (identifier "local_488") (, ",") (identifier "local_484") (, ",") (identifier "local_480") (, ",") (identifier "local_fc") () ")"))) (; ";"))) (} "}"))) (} "}"))) (expression_statement "local_4d0 = local_4c8;" (assignment_expression "local_4d0 = local_4c8" (identifier "local_4d0") (= "=") (identifier "local_4c8")) (; ";")) (expression_statement "uVar5 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar5 = *(uint *)(param_1 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "pfVar21 = unaff_s4;" (assignment_expression "pfVar21 = unaff_s4" (identifier "pfVar21") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;" (if "if") (parenthesized_expression "((int)uVar5 <= (int)local_4c8)" (( "(") (binary_expression "(int)uVar5 <= (int)local_4c8" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (<= "<=") (cast_expression "(int)local_4c8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c8"))) () ")")) (goto_statement "goto LAB_00216b50;" (goto "goto") (statement_identifier "LAB_00216b50") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

/* WARNING: Removing unreachable block (ram,0x002175bc) */
/* WARNING: Removing unreachable block (ram,0x002175c4) */
/* WARNING: Removing unreachable block (ram,0x002178a0) */
/* WARNING: Removing unreachable block (ram,0x002175e8) */
/* WARNING: Removing unreachable block (ram,0x002175f4) */
/* WARNING: Removing unreachable block (ram,0x0021760c) */
/* WARNING: Removing unreachable block (ram,0x00217618) */
/* WARNING: Removing unreachable block (ram,0x00217620) */
/* 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 */

void function_1(type_1 *image,size_t var_12,type_2 var_79,
                type_2 var_47,type_3 *exception)

{
  type_4 var_17;
  bool bVar2;
  type_5 start_00;
  type_5 start_01;
  type_5 axis_00;
  type_5 end_00;
  type_5 end_01;
  type_6 *var_44;
  type_6 *puVar4;
  type_7 var_6;
  int var_7;
  ssize_t *var_9;
  float *var_61;
  type_5 *var_85;
  type_8 *var_82;
  type_6 *var_26;
  size_t var_16;
  type_9 *var_53;
  type_9 *var_74;
  type_10 extraout_v1;
  type_7 var_39;
  bool bVar16;
  type_11 *pPVar17;
  bool bVar18;
  int var_32;
  bool bVar20;
  int *var_56;
  type_4 *var_18;
  type_7 *var_57;
  type_4 *var_22;
  int var_50;
  int *var_58;
  type_9 *var_55;
  int *var_8;
  int *var_86;
  type_7 var_15;
  type_9 *var_84;
  type_8 *var_10;
  type_8 *var_83;
  float *var_59;
  size_t unaff_s6;
  type_7 var_3;
  type_4 *var_19;
  type_12 *pcVar32;
  type_1 *unaff_s8;
  int var_30;
  float var_62;
  float var_40;
  double var_36;
  float var_65;
  float var_68;
  type_8 *var_54;
  float var_66;
  type_8 *pDVar41;
  float var_67;
  type_8 *var_63;
  float var_51;
  double var_37;
  float var_64;
  type_10 uVar47;
  double var_38;
  type_13 uVar49;
  double var_35;
  double var_34;
  float var_33;
  float var_69;
  float var_70;
  float var_49;
  float var_52;
  float var_42;
  double var_46;
  double var_41;
  type_7 var_73;
  int in_stack_fffffae0;
  float in_stack_fffffae4;
  type_6 *var_27;
  double var_78;
  double var_43;
  double var_45;
  double var_77;
  type_6 *var_28;
  int var_11;
  type_7 var_21;
  type_7 var_2;
  type_7 var_4;
  type_7 var_5;
  type_5 end;
  type_5 start;
  type_5 axis;
  type_10 local_458;
  type_10 local_454;
  type_10 local_450;
  type_10 local_44c;
  type_8 grid;
  type_8 gridrcp;
  type_8 half;
  type_8 onethird_onethird2;
  type_8 two;
  type_8 twonineths;
  type_8 twothirds_twothirds2;
  type_8 xSumwSum;
  type_5 end_1;
  ssize_t var_29 [16];
  ssize_t map [16];
  type_8 var_81 [16];
  type_5 codes [4];
  type_9 indices [16];
  type_9 unordered [16];
  type_9 var_23 [16];
  type_4 var_20 [112];
  int var_76;
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  var_76 = *(int *)PTR___stack_chk_guard_003a9230;
  var_6 = image->rows;
  var_83 = var_10;
  if ((int)var_6 < 1) goto LAB_00216b50;
  var_2 = 0;
  var_43 = *(double *)(var_1 + -0x5af0);
  var_27 = var_1;
  var_28 = var_1;
  var_45 = *(double *)(var_1 + -0x5ae8);
LAB_00216150:
  do {
    var_78._0_4_ = image->columns;
    var_5 = var_2 + 4;
    var_3 = 0;
    if ((int)var_78._0_4_ < 1) goto LAB_00216b38;
    while( true ) {
      var_4 = var_3 + 4;
      if (var_4 < var_78._0_4_) {
        var_78._0_4_ = 4;
      }
      else {
        var_78._0_4_ = var_78._0_4_ - var_3;
      }
      if (var_5 < var_6) {
        var_11 = 4;
      }
      else {
        var_11 = var_6 - var_2;
      }
      var_7 = (*(type_12 *)PTR_GetVirtualPixels_003a9764)
                        (image,var_3,var_2,var_78._0_4_,var_11,exception);
      var_44 = var_1;
      var_26 = var_24;
      unaff_s6 = var_12;
      unaff_s8 = image;
      if (var_7 == 0) break;
      var_86 = map;
      var_10 = var_81;
      var_9 = var_29;
      var_8 = var_86;
      do {
        *var_8 = -1;
        var_8 = var_8 + 1;
        *var_9 = -1;
        var_9 = var_9 + 1;
      } while (var_10 != (type_8 *)var_8);
      var_83 = var_10;
      if (var_11 < 1) {
        if (var_12 != 0x35545844) {
          var_55 = (type_9 *)0x0;
          start.z = 0.0;
          start.y = 0.0;
          start.x = 0.0;
          end.z = 0.0;
          end.y = 0.0;
          end.x = 0.0;
          var_84 = (type_9 *)0x0;
          goto LAB_0021703c;
        }
        var_78._0_4_ = 0;
        var_3 = 0;
        var_21 = 5;
        var_6 = 0xff;
        var_55 = (type_9 *)0x0;
LAB_002176f8:
        var_22 = unordered;
        pcVar32 = (type_12 *)(var_13 + 0x2574);
        var_16 = var_14(var_78._0_4_,var_21,5,var_29,var_22);
        var_15 = var_3;
        if ((var_3 < var_6) || (var_15 = var_6, var_3 - var_6 < 7)) {
          var_6 = var_15;
          var_3 = var_6 + 7;
          if (0xff < var_3) {
            var_3 = 0xff;
          }
          if (var_3 - var_6 < 7) {
            var_6 = var_3 - 7;
          }
        }
        var_15 = (*pcVar32)(var_6,var_3,7,var_29,var_23);
        if (var_15 < var_16) {
          var_18 = var_23;
          var_19 = var_22;
LAB_002177b4:
          do {
            var_17 = *var_18;
            var_78._0_4_ = var_3;
            var_21 = var_6;
            if (var_17 == 0) {
              *var_19 = 1;
            }
            else {
              if (var_17 != 1) {
                var_18 = var_18 + 1;
                *var_19 = 9 - var_17;
                var_19 = var_19 + 1;
                if (var_20 == var_18) break;
                goto LAB_002177b4;
              }
              *var_19 = 0;
            }
            var_18 = var_18 + 1;
            var_19 = var_19 + 1;
          } while (var_20 != var_18);
        }
        (*(type_12 *)PTR_WriteBlobByte_003a8fdc)(image,var_78._0_4_ & 0xff);
        (*(type_12 *)PTR_WriteBlobByte_003a8fdc)(image,var_21 & 0xff);
        do {
          var_6 = 0;
          var_3 = 0;
          var_18 = var_22;
          do {
            var_17 = *var_18;
            var_18 = var_18 + 1;
            var_15 = var_6 & 0x1f;
            var_6 = var_6 + 3;
            var_3 = var_3 | (type_7)var_17 << var_15;
          } while (var_6 != 0x18);
          var_22 = var_22 + 8;
          (*(type_12 *)PTR_WriteBlobByte_003a8fdc)(image,var_3 & 0xff);
          (*(type_12 *)PTR_WriteBlobByte_003a8fdc)(image,(var_3 << 0x10) >> 0x18);
          (*(type_12 *)PTR_WriteBlobByte_003a8fdc)(image,(var_3 << 8) >> 0x18);
        } while (var_23 != var_22);
      }
      else {
        var_3 = 0;
        var_55 = (type_9 *)0x0;
        var_30 = 0;
        var_62 = *(float *)(var_1 + -0x5a8c);
        var_6 = 0xff;
        var_41 = *(double *)(var_24 + 0x1410);
        var_15 = 0xff;
        var_42 = *(float *)(var_1 + -0x5a94);
        var_21 = 0;
        var_46 = *(double *)(var_24 + 0x1400);
        var_49 = *(float *)(var_25 + -0x1e5c);
        var_58 = var_86;
        do {
          if (0 < (int)var_78._0_4_) {
            var_37 = *(double *)(var_26 + 0x1400);
            var_34 = *(double *)(var_27 + -0x5af0);
            var_38 = *(double *)(var_26 + 0x1410);
            var_50 = image->number_channels * 4;
            pPVar17 = image->channel_map;
            var_35 = *(double *)(var_28 + -0x5ae8);
            var_57 = (type_7 *)(var_29 + var_30 * 4);
            var_32 = var_7;
            var_56 = var_58;
            do {
              if (var_12 == 0x35545844) {
                if (image->channel_map[4].traits == var_31) {
LAB_00216c58:
                  var_39 = 0xff;
                  var_3 = 0xff;
                }
                else {
                  var_33 = *(float *)(var_32 + image->channel_map[4].offset * 4);
                  if (var_33 <= 0.0) {
                    var_39 = 0;
                    var_6 = 0;
                  }
                  else {
                    var_36 = (double)var_33 / var_34;
                    if (var_35 <= var_36) goto LAB_00216c58;
                    var_36 = var_36 + var_37;
                    if (var_38 <= var_36) {
                      var_36 = var_36 - var_38;
                    }
                    var_39 = (int)var_36 & 0xff;
                    if (var_39 < var_6) {
                      var_6 = var_39;
                    }
                    if (var_3 < var_39) {
                      var_3 = var_39;
                    }
                    if (var_39 != 0) {
                      if (var_39 < var_15) {
                        var_15 = var_39;
                      }
                      if ((var_39 != 0xff) && (var_21 < var_39)) {
                        var_21 = var_39;
                      }
                    }
                  }
                }
              }
              else {
                var_39 = 0xff;
              }
              *var_57 = var_39;
              var_40 = *(float *)(var_32 + pPVar17->offset * 4);
              var_33 = 0.0;
              if ((0.0 < var_40) &&
                 (var_36 = (double)var_40 / var_34, var_33 = var_62, var_36 < var_35)) {
                var_36 = var_36 + var_37;
                if (var_41 <= var_36) {
                  var_36 = var_36 - var_41;
                }
                var_33 = (float)((int)var_36 & 0xff) / var_42;
              }
              var_40 = *(float *)(var_32 + pPVar17[1].offset * 4);
              var_51 = 0.0;
              if (0.0 < var_40) {
                var_36 = (double)var_40 / var_43;
                var_51 = *(float *)(var_44 + -0x5a8c);
                if (var_36 < var_45) {
                  var_36 = var_36 + var_46;
                  if (*(double *)(var_26 + 0x1410) <= var_36) {
                    var_36 = var_36 - *(double *)(var_26 + 0x1410);
                  }
                  var_51 = (float)((int)var_36 & 0xff) / *(float *)(var_44 + -0x5a94);
                }
              }
              var_40 = *(float *)(var_32 + pPVar17[2].offset * 4);
              var_52 = 0.0;
              if (0.0 < var_40) {
                var_36 = (double)var_40 / *(double *)(var_27 + -0x5af0);
                var_52 = *(float *)(var_44 + -0x5a8c);
                if (var_36 < *(double *)(var_28 + -0x5ae8)) {
                  var_36 = var_36 + *(double *)(var_26 + 0x1400);
                  if (*(double *)(var_26 + 0x1410) <= var_36) {
                    var_36 = var_36 - *(double *)(var_26 + 0x1410);
                  }
                  var_52 = (float)((int)var_36 & 0xff) / *(float *)(var_44 + -0x5a94);
                }
              }
              var_40 = *(float *)(var_44 + -0x5a8c);
              if (var_47 != var_48) {
                var_40 = (float)(var_39 + 1) * var_49;
              }
              var_32 = var_32 + var_50;
              if (0 < (int)var_55) {
                var_53 = (type_9 *)0x0;
                var_54 = var_10;
                do {
                  if ((((var_54->x == var_33) && (var_54->y == var_51)) && (var_54->z == var_52))
                     && (((char)var_39 < '\0' || (var_12 == 0x35545844)))) {
                    *var_56 = (int)var_53;
                    var_81[(int)var_53].w = var_81[(int)var_53].w + var_40;
                    goto LAB_002164d0;
                  }
                  var_53 = var_53 + 1;
                  var_54 = var_54 + 1;
                } while (var_53 != var_55);
              }
              *var_56 = (int)var_55;
              var_81[(int)var_55].x = var_33;
              var_81[(int)var_55].y = var_51;
              var_81[(int)var_55].z = var_52;
              var_81[(int)var_55].w = var_40;
              var_55 = var_55 + 1;
LAB_002164d0:
              var_56 = var_56 + 1;
              var_57 = var_57 + 1;
            } while (var_58 + var_78._0_4_ != var_56);
            var_7 = var_50 * var_78._0_4_ + var_7;
          }
          var_30 = var_30 + 1;
          var_58 = var_58 + 4;
        } while (var_30 != var_11);
        if (0 < (int)var_55) {
          uVar49 = 0;
          var_59 = &var_81[0].w;
          var_61 = var_59 + (int)var_55 * 4;
          do {
            var_62 = var_60(*var_59);
            if (*var_59 < (float)uVar49) {
              (*(type_12 *)PTR_sqrtf_003a9800)();
            }
            *var_59 = var_62;
            var_59 = var_59 + 4;
          } while (var_61 != var_59);
        }
        if (var_12 == 0x35545844) {
          var_78._0_4_ = var_21;
          if ((var_21 < var_15) || (var_78._0_4_ = var_15, var_21 - var_15 < 5)) {
            var_21 = var_78._0_4_ + 5;
            if (0xff < var_21) {
              var_21 = 0xff;
            }
            if (var_21 - var_78._0_4_ < 5) {
              var_78._0_4_ = var_21 - 5;
            }
          }
          goto LAB_002176f8;
        }
      }
      var_84 = var_55;
      if (var_55 != (type_9 *)0x1) {
        start.z = 0.0;
        start.y = 0.0;
        start.x = 0.0;
        end.z = 0.0;
        end.y = 0.0;
        end.x = 0.0;
        if (var_55 == (type_9 *)0x0) goto LAB_0021703c;
        var_49 = 0.0;
        var_42 = 0.0;
        var_33 = 0.0;
        var_62 = 0.0;
        var_54 = var_10;
        do {
          var_40 = var_54->w;
          var_63 = var_54 + 1;
          var_62 = var_62 + var_40;
          var_33 = var_40 * var_54->x + var_33;
          var_42 = var_40 * var_54->y + var_42;
          var_49 = var_40 * var_54->z + var_49;
          var_54 = var_63;
        } while (var_10 + (int)var_55 != var_63);
        if (*(float *)(var_25 + -0x1e58) < var_62) {
          var_33 = var_33 / var_62;
          var_42 = var_42 / var_62;
          var_49 = var_49 / var_62;
        }
        var_70 = 0.0;
        var_69 = 0.0;
        var_52 = 0.0;
        var_62 = 0.0;
        var_51 = 0.0;
        var_40 = 0.0;
        var_54 = var_10;
        do {
          var_63 = var_54 + 1;
          var_66 = var_54->x - var_33;
          var_65 = var_54->w;
          var_67 = var_54->y - var_42;
          var_64 = var_54->z - var_49;
          var_68 = var_64 * var_65;
          var_40 = var_66 * var_65 * var_66 + var_40;
          var_51 = var_66 * var_67 * var_65 + var_51;
          var_62 = var_66 * var_68 + var_62;
          var_52 = var_67 * var_67 * var_65 + var_52;
          var_69 = var_67 * var_68 + var_69;
          var_70 = var_64 * var_68 + var_70;
          var_54 = var_63;
          if (var_10 + (int)var_55 == var_63) goto LAB_0021663c;
        } while( true );
      }
      var_7 = 0;
      var_6 = 0xffffffff;
      var_30 = 0;
      var_49 = *(float *)(var_71 + -0xe34);
      var_42 = *(float *)(var_1 + -0x5a94);
      var_62 = *(float *)(var_25 + -0x1e70);
      var_39 = (type_7)(var_81[0].y * var_42 + var_49);
      var_15 = (type_7)(var_81[0].z * var_42 + var_49);
      var_3 = (type_7)(var_81[0].x * var_42 + var_49);
      if (0xff < var_39) {
        var_39 = 0xff;
      }
      if (0xff < var_15) {
        var_15 = 0xff;
      }
      if (0xff < var_3) {
        var_3 = 0xff;
      }
      indices[2] = (type_9)var_15;
      indices[1] = (type_9)var_39;
      indices[0] = (type_9)var_3;
      while( true ) {
        var_32 = var_30 * 3;
        var_19 = (type_4 *)(*(int *)(var_72 + -0x78cc) + (var_39 & 0xff) * 6 + var_32);
        var_18 = (type_4 *)(*(int *)(var_72 + -0x78c8) + (var_15 & 0xff) * 6 + var_32);
        var_22 = (type_4 *)(*(int *)(var_72 + -0x78d0) + (var_3 & 0xff) * 6 + var_32);
        var_73 = (type_7)var_19[2] * (type_7)var_19[2] + (type_7)var_18[2] * (type_7)var_18[2] +
                 (type_7)var_22[2] * (type_7)var_22[2];
        if (var_73 <= var_6) {
          xSumwSum.x = (float)*var_22 / var_62;
          xSumwSum.y = (float)*var_19 / *(float *)(var_25 + -0x1e6c);
          xSumwSum.z = (float)*var_18 / var_62;
          end_1.x = (float)var_22[1] / var_62;
          end_1.y = (float)var_19[1] / *(float *)(var_25 + -0x1e6c);
          end_1.z = (float)var_18[1] / var_62;
          var_7 = var_30 * 2;
          var_6 = var_73;
        }
        if (var_30 == 1) break;
        var_30 = 1;
      }
      var_53 = unordered;
      do {
        *var_53 = (type_9)var_7;
        var_53 = var_53 + 1;
        var_74 = var_23;
      } while (var_23 != var_53);
      do {
        while (var_58 = var_86, *var_58 == -1) {
          *var_74 = '\x03';
          var_74 = var_74 + 1;
          var_86 = var_58 + 1;
          if (var_8 == var_58 + 1) goto LAB_00216f04;
        }
        *var_74 = unordered[*var_58];
        var_74 = var_74 + 1;
        var_86 = var_58 + 1;
      } while (var_8 != var_58 + 1);
LAB_00216f04:
      var_86 = var_58 + 1;
      start_01.x = end_1.x;
      start_01.y = end_1.y;
      start_01.z = end_1.z;
      end_01.x = (float)var_23;
      end_01.y = (float)in_stack_fffffae0;
      end_01.z = in_stack_fffffae4;
      var_75(image,start_01,end_01,(type_9 *)xSumwSum.x);
      while( true ) {
        var_78._0_4_ = image->columns;
        var_6 = image->rows;
        var_3 = var_4;
        if ((int)var_4 < (int)var_78._0_4_) break;
LAB_00216b38:
        var_2 = var_5;
        var_83 = var_10;
        unaff_s6 = var_12;
        unaff_s8 = image;
        if ((int)var_5 < (int)var_6) goto LAB_00216150;
LAB_00216b50:
        if (var_76 == *(int *)puVar4) {
          return;
        }
        (*(type_12 *)PTR___stack_chk_fail_003a9064)();
LAB_0021703c:
        var_70 = 0.0;
        var_12 = unaff_s6;
        image = unaff_s8;
        var_62 = var_70;
        var_40 = var_70;
        var_51 = var_70;
        var_52 = var_70;
        var_69 = var_70;
LAB_0021663c:
        var_26 = var_1;
        var_7 = 8;
        var_41 = *(double *)(var_24 + 0x1438);
        pDVar41 = *(type_8 **)(var_1 + -0x5a8c);
        var_46 = *(double *)(var_24 + 0x13f8);
        var_54 = pDVar41;
        var_63 = pDVar41;
        do {
          while( true ) {
            var_42 = var_69 * (float)pDVar41 + var_51 * (float)var_63 + var_52 * (float)var_54;
            var_33 = var_70 * (float)pDVar41 + var_62 * (float)var_63 + var_69 * (float)var_54;
            var_49 = var_62 * (float)pDVar41 + var_40 * (float)var_63 + var_51 * (float)var_54;
            if (var_33 < var_42) break;
            if (var_49 <= var_33) goto LAB_0021668c;
LAB_00216720:
            var_78 = (double)var_49;
            if (0.0 <= var_49) goto LAB_002166ac;
LAB_00216730:
            var_77 = -var_78;
            var_37 = *(double *)(var_24 + 0x1a78);
            if (var_46 <= var_77) goto LAB_002166c4;
LAB_00216758:
            var_7 = var_7 + -1;
            var_65 = (float)(var_37 / var_46);
            var_63 = (type_8 *)(var_49 * var_65);
            var_54 = (type_8 *)(var_42 * var_65);
            pDVar41 = (type_8 *)(var_33 * var_65);
            if (var_7 == 0) goto LAB_00216774;
          }
          if (var_42 < var_49) goto LAB_00216720;
LAB_0021668c:
          var_65 = var_42;
          if (var_42 <= var_33) {
            var_65 = var_33;
          }
          var_78 = (double)var_65;
          if (var_65 < 0.0) goto LAB_00216730;
LAB_002166ac:
          var_37 = var_41;
          if (var_78 < var_46) goto LAB_00216758;
LAB_002166c4:
          var_7 = var_7 + -1;
          var_65 = (float)(var_41 / var_78);
          var_63 = (type_8 *)(var_49 * var_65);
          var_54 = (type_8 *)(var_42 * var_65);
          pDVar41 = (type_8 *)(var_33 * var_65);
        } while (var_7 != 0);
LAB_00216774:
        uVar47 = (type_10)((type_14)var_41 >> 0x20);
        if (var_79 == var_48) {
          if (var_55 == (type_9 *)0x0) goto LAB_00216788;
          start.y = var_81[0].y;
          start.x = var_81[0].x;
          start.z = var_81[0].z;
          end.x = var_81[0].x;
          end.y = var_81[0].y;
          end.z = var_81[0].z;
          var_62 = (float)pDVar41 * var_81[0].z +
                   (float)var_63 * var_81[0].x + (float)var_54 * var_81[0].y;
          if ((int)var_84 < 2) {
            if (var_81[0].x < 0.0) goto LAB_002171e0;
            var_62 = *(float *)(var_1 + -0x5a8c);
LAB_002179a0:
            if (start.x <= var_62) {
              var_62 = start.x * *(float *)(var_25 + -0x1e70) +
                       *(float *)(var_71 + -0xe34);
              goto LAB_002171e8;
            }
            uVar49 = var_80(uVar47,*(type_10 *)(var_25 + -0x1e68));
            if (0.0 <= start.y) {
              var_62 = *(float *)(var_1 + -0x5a8c);
              goto LAB_002179c0;
            }
          }
          else {
            var_82 = var_81 + 1;
            bVar2 = false;
            bVar18 = false;
            bVar20 = false;
            bVar16 = false;
            var_49 = var_81[0].x;
            var_42 = var_62;
            var_33 = var_81[0].z;
            var_40 = var_81[0].y;
            var_51 = var_81[0].z;
            var_52 = var_81[0].x;
            var_69 = var_81[0].y;
            do {
              while( true ) {
                var_68 = var_82->y;
                var_65 = var_82->x;
                var_70 = var_82->z;
                var_66 = (float)pDVar41 * var_70 + (float)var_63 * var_65 + (float)var_54 * var_68
                ;
                if (var_66 < var_42) break;
                if (var_62 < var_66) {
                  bVar2 = true;
                  bVar18 = true;
                  bVar20 = true;
                  var_49 = var_65;
                  var_33 = var_70;
                  var_40 = var_68;
                  var_62 = var_66;
                }
                var_82 = var_82 + 1;
                var_70 = var_51;
                var_65 = var_52;
                var_68 = var_69;
                if (var_83 + (int)var_84 == var_82) goto LAB_00217194;
              }
              var_82 = var_82 + 1;
              bVar16 = true;
              var_42 = var_66;
              var_51 = var_70;
              var_52 = var_65;
              var_69 = var_68;
            } while (var_83 + (int)var_84 != var_82);
LAB_00217194:
            if (bVar16) {
              start.x = var_65;
              start.y = var_68;
              start.z = var_70;
            }
            if (bVar20) {
              end.x = var_49;
            }
            if (bVar18) {
              end.y = var_40;
            }
            if (bVar2) {
              end.z = var_33;
            }
            var_62 = *(float *)(var_1 + -0x5a8c);
            if (0.0 <= start.x) goto LAB_002179a0;
LAB_002171e0:
            var_62 = *(float *)(var_71 + -0xe34);
LAB_002171e8:
            uVar49 = var_80(uVar47,var_62);
            var_62 = *(float *)(var_1 + -0x5a8c);
            if (0.0 <= start.y) {
LAB_002179c0:
              var_49 = start.z;
              var_42 = start.y;
              if (start.y <= var_62) goto LAB_002167a4;
              var_62 = *(float *)(var_25 + -0x1e64);
              goto LAB_002167b4;
            }
          }
          var_62 = *(float *)(var_71 + -0xe34);
          var_49 = start.z;
          if (0.0 <= start.z) goto LAB_002167c4;
LAB_0021720c:
          var_49 = *(float *)(var_71 + -0xe34);
          if (0.0 < (float)uVar49) goto LAB_002167f4;
LAB_00217224:
          uVar47 = (type_10)((type_14)uVar49 >> 0x20);
          var_42 = (float)(*(type_12 *)PTR_ceilf_003a9484)();
          uVar49 = var_80(uVar47,var_62);
joined_r0x00216814:
          if (var_62 <= 0.0) {
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            var_62 = (float)(*(type_12 *)PTR_ceilf_003a9484)();
          }
          else {
            var_62 = (float)(*(type_12 *)PTR_floorf_003a94a0)(uVar49);
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
          }
          uVar49 = var_80(uVar47,var_49);
          if (0.0 < var_49) {
            var_49 = (float)(*(type_12 *)PTR_floorf_003a94a0)(uVar49);
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            start.x = var_42 * *(float *)(var_25 + -0x1e54);
            start.z = var_49 * *(float *)(var_25 + -0x1e54);
            start.y = var_62 * *(float *)(var_25 + -0x1e50);
            if (end.x < 0.0) goto LAB_002170a0;
LAB_00216890:
            if (*(float *)(var_26 + -0x5a8c) < end.x) {
              uVar49 = var_80(uVar47,*(type_10 *)(var_25 + -0x1e68));
              goto LAB_002168a8;
            }
            uVar49 = var_80(uVar47,end.x * *(float *)(var_25 + -0x1e70) +
                                     *(float *)(var_71 + -0xe34));
            var_62 = *(float *)(var_26 + -0x5a8c);
            if (0.0 <= end.y) goto LAB_002168bc;
LAB_00217004:
            var_62 = *(float *)(var_71 + -0xe34);
LAB_002168d0:
            if (0.0 <= end.z) {
              var_49 = *(float *)(var_26 + -0x5a8c);
              goto LAB_002168e4;
            }
LAB_00216f6c:
            var_49 = *(float *)(var_71 + -0xe34);
            if (0.0 < (float)uVar49) goto LAB_00216910;
LAB_00216f7c:
            var_55 = var_25;
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            var_42 = start.x;
            var_33 = start.y;
            var_40 = start.z;
            var_51 = (float)(*(type_12 *)PTR_ceilf_003a9484)();
            uVar49 = var_80(uVar47,var_62);
            if (0.0 < var_62) goto LAB_00216938;
LAB_00216fa0:
            var_62 = (float)(*(type_12 *)PTR_ceilf_003a9484)(uVar49);
            if (0.0 < var_49) goto LAB_00216960;
LAB_00216fc8:
            var_49 = (float)(*(type_12 *)PTR_ceilf_003a9484)();
          }
          else {
            var_49 = (float)(*(type_12 *)PTR_ceilf_003a9484)();
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            start.x = var_42 * *(float *)(var_25 + -0x1e54);
            start.z = var_49 * *(float *)(var_25 + -0x1e54);
            start.y = var_62 * *(float *)(var_25 + -0x1e50);
            if (0.0 <= end.x) goto LAB_00216890;
LAB_002170a0:
            uVar49 = var_80(uVar47,*(type_10 *)(var_71 + -0xe34));
LAB_002168a8:
            if (end.y < 0.0) goto LAB_00217004;
            var_62 = *(float *)(var_26 + -0x5a8c);
LAB_002168bc:
            if (var_62 < end.y) {
              var_62 = *(float *)(var_25 + -0x1e64);
              goto LAB_002168d0;
            }
            var_62 = end.y * *(float *)(var_25 + -0x1e6c) +
                     *(float *)(var_71 + -0xe34);
            var_49 = *(float *)(var_26 + -0x5a8c);
            if (end.z < 0.0) goto LAB_00216f6c;
LAB_002168e4:
            if (end.z <= var_49) {
              var_49 = end.z * *(float *)(var_25 + -0x1e70) +
                       *(float *)(var_71 + -0xe34);
            }
            else {
              var_49 = *(float *)(var_25 + -0x1e68);
            }
            if ((float)uVar49 <= 0.0) goto LAB_00216f7c;
LAB_00216910:
            var_55 = var_25;
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            var_42 = start.x;
            var_33 = start.y;
            var_40 = start.z;
            var_51 = (float)(*(type_12 *)PTR_floorf_003a94a0)();
            uVar49 = var_80(uVar47,var_62);
            if (var_62 <= 0.0) goto LAB_00216fa0;
LAB_00216938:
            var_62 = (float)(*(type_12 *)PTR_floorf_003a94a0)();
            if (var_49 <= 0.0) goto LAB_00216fc8;
LAB_00216960:
            var_49 = (float)(*(type_12 *)PTR_floorf_003a94a0)(var_49);
          }
          var_52 = *(float *)(var_25 + -0x1e4c);
          end.x = var_51 * *(float *)(var_55 + -0x1e54);
          var_51 = *(float *)(var_25 + -0x1e48);
          end.y = var_62 * *(float *)(var_55 + -0x1e50);
          end.z = var_49 * *(float *)(var_55 + -0x1e54);
          codes[0].x = start.x;
          codes[0].y = start.y;
          codes[0].z = start.z;
          codes[1].x = end.x;
          codes[1].y = end.y;
          codes[1].z = end.z;
          codes[2].x = var_42 * var_52 + end.x * var_51;
          codes[2].y = var_33 * var_52 + end.y * var_51;
          codes[3].x = var_42 * var_51 + end.x * var_52;
          codes[2].z = var_40 * var_52 + end.z * var_51;
          codes[3].y = var_33 * var_51 + end.y * var_52;
          codes[3].z = var_40 * var_51 + end.z * var_52;
          if (0 < (int)var_84) {
            var_53 = var_23;
            var_84 = var_84 + (int)var_53;
            var_62 = *(float *)(var_25 + -0x1e60);
            do {
              var_30 = 0;
              var_85 = codes;
              var_7 = 0;
              var_49 = var_62;
              do {
                var_40 = var_83->y - var_85->y;
                var_33 = var_83->x - var_85->x;
                var_42 = var_83->z - var_85->z;
                var_42 = var_42 * var_42 + var_33 * var_33 + var_40 * var_40;
                var_32 = var_30;
                if (var_49 <= var_42) {
                  var_32 = var_7;
                  var_42 = var_49;
                }
                var_49 = var_42;
                var_30 = var_30 + 1;
                var_85 = var_85 + 1;
                var_7 = var_32;
              } while (var_30 != 4);
              *var_53 = (type_9)var_32;
              var_53 = var_53 + 1;
              var_83 = var_83 + 1;
            } while (var_84 != var_53);
          }
          var_53 = indices;
          do {
            while (var_7 = *var_86, var_10 = var_83, var_7 == -1) {
              var_86 = var_86 + 1;
              *var_53 = '\x03';
              var_53 = var_53 + 1;
              if (var_8 == var_86) goto LAB_00216af4;
            }
            var_86 = var_86 + 1;
            *var_53 = var_23[var_7];
            var_53 = var_53 + 1;
          } while (var_8 != var_86);
        }
        else {
          if (var_55 == (type_9 *)0x0) {
LAB_00216788:
            uVar49 = var_80(uVar47,*(type_10 *)(var_71 + -0xe34));
            end.z = 0.0;
            end.y = 0.0;
            end.x = 0.0;
            var_49 = 0.0;
            var_42 = 0.0;
LAB_002167a4:
            var_62 = var_42 * *(float *)(var_25 + -0x1e6c) +
                     *(float *)(var_71 + -0xe34);
LAB_002167b4:
            if (var_49 < 0.0) goto LAB_0021720c;
LAB_002167c4:
            if (var_49 <= *(float *)(var_1 + -0x5a8c)) {
              var_49 = var_49 * *(float *)(var_25 + -0x1e70) +
                       *(float *)(var_71 + -0xe34);
            }
            else {
              var_49 = *(float *)(var_25 + -0x1e68);
            }
            if ((float)uVar49 <= 0.0) goto LAB_00217224;
LAB_002167f4:
            uVar47 = (type_10)((type_14)uVar49 >> 0x20);
            var_42 = (float)(*(type_12 *)PTR_floorf_003a94a0)();
            uVar49 = var_80(uVar47,var_62);
            goto joined_r0x00216814;
          }
          local_458 = *(type_10 *)(var_1 + -0x5a8c);
          var_22 = var_23;
          pcVar32 = (type_12 *)(var_13 + 0x2674);
          grid.y = *(float *)(var_25 + -0x1e6c);
          in_stack_fffffae0 = 0;
          grid.x = *(float *)(var_25 + -0x1e70);
          grid.w = 0.0;
          xSumwSum.x = 0.0;
          xSumwSum.y = 0.0;
          xSumwSum.z = 0.0;
          xSumwSum.w = 0.0;
          axis_00.x = (float)pDVar41;
          axis_00.y = (float)codes;
          axis_00.z = (float)&xSumwSum;
          local_454 = local_458;
          local_450 = local_458;
          local_44c = local_458;
          grid.z = grid.x;
          var_87((size_t)var_55,var_83,axis_00,var_63,var_54,var_22,0);
          var_7 = 0;
          var_10 = (type_8 *)0x0;
          var_26 = var_88 + -0x7df4;
          do {
            (*(type_12 *)PTR_GetMagickResourceLimit_003a913c)(7);
            end_1.x = (float)var_55;
            end_1.y = (float)&local_458;
            end_1.z = (float)&start;
            (*(type_12 *)PTR_GOMP_parallel_003a9198)(var_26,&end_1,extraout_v1,0);
            if (var_7 != 0) break;
            var_7 = 1;
            in_stack_fffffae0 = var_7;
            var_30 = (*pcVar32)(var_55,var_83,end.x - start.x,end.y - start.y,end.z - start.z,
                                codes,&xSumwSum,var_22);
          } while (var_30 != 0);
          if (0 < (int)var_84) {
            var_18 = var_22 + (int)var_84;
            do {
              var_17 = *var_22;
              var_22 = var_22 + 1;
              unordered[var_17] = '\x01';
            } while (var_18 != var_22);
          }
          var_53 = indices;
          do {
            while (var_58 = var_86, *var_58 == -1) {
              *var_53 = '\x03';
              var_53 = var_53 + 1;
              var_86 = var_58 + 1;
              if (var_8 == var_58 + 1) goto LAB_002176b0;
            }
            *var_53 = unordered[*var_58];
            var_53 = var_53 + 1;
            var_86 = var_58 + 1;
          } while (var_8 != var_58 + 1);
LAB_002176b0:
          var_86 = var_58 + 1;
        }
LAB_00216af4:
        start_00.x = end.x;
        start_00.y = end.y;
        start_00.z = end.z;
        end_00.x = (float)indices;
        end_00.y = (float)in_stack_fffffae0;
        end_00.z = in_stack_fffffae4;
        var_75(image,start_00,end_00,(type_9 *)start.x);
      }
    }
    var_2 = var_5;
    var_6 = image->rows;
    var_83 = var_10;
    if ((int)var_6 <= (int)var_5) goto LAB_00216b50;
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) 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: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (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)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (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))))))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier) (number_literal) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))))) condition: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (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) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (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: (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: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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)))))))) (if_statement condition: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (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 (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (unary_expression argument: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) consequence: (break_statement)) (labeled_statement label: (statement_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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement)))) (expression_statement (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier))) consequence: (goto_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: (true))) (expression_statement (assignment_expression left: (identifier) right: (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)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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 (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) 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)))))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))))))) (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) 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) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier) (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (unary_expression argument: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (true)))))))

void MASKED(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)

{
  byte bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  uint *puVar7;
  float *pfVar8;
  undefined *puVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 extraout_v1;
  uint uVar12;
  bool bVar13;
  int iVar14;
  bool bVar15;
  int iVar16;
  bool bVar17;
  float *pfVar18;
  int iVar19;
  byte *unaff_s0;
  float *unaff_s1;
  float *unaff_s2;
  uint uVar20;
  byte *unaff_s3;
  float *unaff_s4;
  float *pfVar21;
  int unaff_s6;
  float *pfVar22;
  uint uVar23;
  byte *pbVar24;
  code *pcVar25;
  int unaff_s8;
  int iVar26;
  float fVar28;
  float fVar29;
  double dVar27;
  float fVar30;
  float fVar31;
  float fVar32;
  float fVar33;
  float fVar34;
  float fVar35;
  double dVar36;
  undefined4 uVar37;
  double dVar38;
  undefined8 uVar39;
  double dVar40;
  float fVar41;
  double dVar42;
  float fVar43;
  float fVar44;
  float fVar46;
  ulonglong uVar45;
  float fVar47;
  float fVar48;
  float fVar49;
  double dVar50;
  double dVar51;
  uint uVar52;
  undefined *local_50c;
  double local_508;
  double local_500;
  double local_4f8;
  double local_4f0;
  undefined *local_4e8;
  int local_4e4;
  uint local_4dc;
  uint local_4d0;
  uint local_4cc;
  uint local_4c8;
  float local_488;
  float local_484;
  float local_480;
  float local_47c;
  float local_478;
  float local_474;
  float local_470;
  float local_46c;
  float local_468;
  float local_464;
  float local_460;
  float local_45c;
  undefined4 local_458;
  undefined4 local_454;
  undefined4 local_450;
  undefined4 local_44c;
  undefined4 local_448;
  undefined4 local_444;
  undefined4 local_440;
  undefined4 local_43c;
  undefined4 local_438;
  undefined4 local_434;
  undefined4 local_430;
  undefined4 local_42c;
  undefined4 local_428;
  undefined4 local_424;
  undefined4 local_420;
  undefined4 local_41c;
  undefined4 local_418;
  undefined4 local_414;
  undefined4 local_410;
  undefined4 local_40c;
  undefined4 local_408;
  undefined4 local_404;
  undefined4 local_400;
  undefined4 local_3fc;
  undefined4 local_3f8;
  undefined4 local_3f4;
  undefined4 local_3f0;
  undefined4 local_3ec;
  undefined4 local_3e8;
  undefined4 local_3e4;
  undefined4 local_3e0;
  undefined4 local_3dc;
  float local_3d8;
  float local_3d4;
  float local_3d0;
  undefined4 local_3cc;
  byte *local_3c8;
  undefined4 *local_3c4;
  float *local_3c0;
  float *local_3bc;
  undefined4 *local_3b8;
  undefined4 *local_3b4;
  undefined4 *local_3b0;
  undefined4 *local_3ac;
  float *local_3a8;
  undefined4 *local_3a4;
  undefined4 *local_3a0;
  undefined4 *local_39c;
  float *local_398;
  uint local_394;
  float *local_390;
  int local_38c;
  int local_388;
  int local_384;
  float *local_380;
  uint local_37c [16];
  float local_33c [16];
  float local_2fc [64];
  float local_1fc;
  float local_1f8;
  float local_1f4;
  float local_1f0;
  float local_1ec;
  float local_1e8;
  float local_1e4;
  float local_1e0;
  float local_1dc;
  float local_1d8;
  float local_1d4;
  float local_1d0;
  byte local_fc [16];
  byte local_ec [16];
  byte local_dc [16];
  byte abStack_cc [112];
  int local_5c;
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  local_5c = *(int *)PTR___stack_chk_guard_003a9230;
  uVar5 = *(uint *)(param_1 + 0x1c);
  pfVar21 = unaff_s4;
  if ((int)uVar5 < 1) goto LAB_00216b50;
  local_4d0 = 0;
  local_500 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
  local_50c = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4e8 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
  local_4f8 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
LAB_00216150:
  do {
    local_508._0_4_ = *(uint *)(param_1 + 0x18);
    local_4c8 = local_4d0 + 4;
    uVar23 = 0;
    if ((int)local_508._0_4_ < 1) goto LAB_00216b38;
    while( true ) {
      local_4cc = uVar23 + 4;
      if (local_4cc < local_508._0_4_) {
        local_508._0_4_ = 4;
      }
      else {
        local_508._0_4_ = local_508._0_4_ - uVar23;
      }
      if (local_4c8 < uVar5) {
        local_4e4 = 4;
      }
      else {
        local_4e4 = uVar5 - local_4d0;
      }
      iVar6 = (*(code *)PTR_GetVirtualPixels_003a9764)
                        (param_1,uVar23,local_4d0,local_508._0_4_,local_4e4,param_5);
      puVar3 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
      puVar9 = PTR_LAB_003a88e0;
      unaff_s6 = param_2;
      unaff_s8 = param_1;
      if (iVar6 == 0) break;
      unaff_s2 = local_33c;
      unaff_s4 = local_2fc;
      puVar7 = local_37c;
      unaff_s1 = unaff_s2;
      do {
        *unaff_s1 = -NAN;
        unaff_s1 = unaff_s1 + 1;
        *puVar7 = 0xffffffff;
        puVar7 = puVar7 + 1;
      } while (unaff_s4 != unaff_s1);
      pfVar21 = unaff_s4;
      if (local_4e4 < 1) {
        if (param_2 != 0x35545844) {
          unaff_s0 = (byte *)0x0;
          local_474 = 0.0;
          local_478 = 0.0;
          local_47c = 0.0;
          local_480 = 0.0;
          local_484 = 0.0;
          local_488 = 0.0;
          unaff_s3 = (byte *)0x0;
          goto LAB_0021703c;
        }
        local_508._0_4_ = 0;
        uVar23 = 0;
        local_4dc = 5;
        uVar5 = 0xff;
        unaff_s0 = (byte *)0x0;
LAB_002176f8:
        pbVar11 = local_ec;
        pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2574);
        uVar12 = FUN_00212574(local_508._0_4_,local_4dc,5,local_37c,pbVar11);
        uVar20 = uVar23;
        if ((uVar23 < uVar5) || (uVar20 = uVar5, uVar23 - uVar5 < 7)) {
          uVar5 = uVar20;
          uVar23 = uVar5 + 7;
          if (0xff < uVar23) {
            uVar23 = 0xff;
          }
          if (uVar23 - uVar5 < 7) {
            uVar5 = uVar23 - 7;
          }
        }
        uVar20 = (*pcVar25)(uVar5,uVar23,7,local_37c,local_dc);
        if (uVar20 < uVar12) {
          pbVar10 = local_dc;
          pbVar24 = pbVar11;
          do {
            while (bVar1 = *pbVar10, local_508._0_4_ = uVar23, local_4dc = uVar5, bVar1 == 0) {
              *pbVar24 = 1;
LAB_002177a8:
              pbVar10 = pbVar10 + 1;
              pbVar24 = pbVar24 + 1;
              if (abStack_cc == pbVar10) goto LAB_002177d8;
            }
            if (bVar1 == 1) {
              *pbVar24 = 0;
              goto LAB_002177a8;
            }
            pbVar10 = pbVar10 + 1;
            *pbVar24 = 9 - bVar1;
            pbVar24 = pbVar24 + 1;
          } while (abStack_cc != pbVar10);
        }
LAB_002177d8:
        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_508._0_4_ & 0xff);
        (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,local_4dc & 0xff);
        do {
          uVar5 = 0;
          uVar23 = 0;
          pbVar10 = pbVar11;
          do {
            bVar1 = *pbVar10;
            pbVar10 = pbVar10 + 1;
            uVar20 = uVar5 & 0x1f;
            uVar5 = uVar5 + 3;
            uVar23 = uVar23 | (uint)bVar1 << uVar20;
          } while (uVar5 != 0x18);
          pbVar11 = pbVar11 + 8;
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,uVar23 & 0xff);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 0x10) >> 0x18);
          (*(code *)PTR_WriteBlobByte_003a8fdc)(param_1,(uVar23 << 8) >> 0x18);
        } while (local_dc != pbVar11);
      }
      else {
        uVar23 = 0;
        unaff_s0 = (byte *)0x0;
        iVar26 = 0;
        fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        uVar5 = 0xff;
        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
        uVar20 = 0xff;
        fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
        local_4dc = 0;
        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e5c);
        pfVar22 = unaff_s2;
        do {
          if (0 < (int)local_508._0_4_) {
            dVar36 = *(double *)(puVar9 + 0x1400);
            dVar42 = *(double *)(local_50c + -0x5af0);
            dVar38 = *(double *)(puVar9 + 0x1410);
            iVar19 = *(int *)(param_1 + 0x2c0) * 4;
            iVar14 = *(int *)(param_1 + 0x2d0);
            dVar40 = *(double *)(local_4e8 + -0x5ae8);
            puVar7 = local_37c + iVar26 * 4;
            iVar16 = iVar6;
            pfVar18 = pfVar22;
            do {
              if (param_2 == 0x35545844) {
                if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 0) {
LAB_00216c58:
                  uVar12 = 0xff;
                  uVar23 = 0xff;
                }
                else {
                  fVar43 = *(float *)(iVar16 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4);
                  if (fVar43 <= 0.0) {
                    uVar12 = 0;
                    uVar5 = 0;
                  }
                  else {
                    dVar27 = (double)fVar43 / dVar42;
                    if (dVar40 <= dVar27) goto LAB_00216c58;
                    dVar27 = dVar27 + dVar36;
                    if (dVar38 <= dVar27) {
                      dVar27 = dVar27 - dVar38;
                    }
                    uVar12 = (int)dVar27 & 0xff;
                    if (uVar12 < uVar5) {
                      uVar5 = uVar12;
                    }
                    if (uVar23 < uVar12) {
                      uVar23 = uVar12;
                    }
                    if (uVar12 != 0) {
                      if (uVar12 < uVar20) {
                        uVar20 = uVar12;
                      }
                      if ((uVar12 != 0xff) && (local_4dc < uVar12)) {
                        local_4dc = uVar12;
                      }
                    }
                  }
                }
              }
              else {
                uVar12 = 0xff;
              }
              *puVar7 = uVar12;
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 8) * 4);
              fVar43 = 0.0;
              if ((0.0 < fVar29) &&
                 (dVar27 = (double)fVar29 / dVar42, fVar43 = fVar28, dVar27 < dVar40)) {
                dVar27 = dVar27 + dVar36;
                if (dVar51 <= dVar27) {
                  dVar27 = dVar27 - dVar51;
                }
                fVar43 = (float)((int)dVar27 & 0xff) / fVar49;
              }
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x14) * 4);
              fVar34 = 0.0;
              if (0.0 < fVar29) {
                dVar27 = (double)fVar29 / local_500;
                fVar34 = *(float *)(puVar3 + -0x5a8c);
                if (dVar27 < local_4f8) {
                  dVar27 = dVar27 + dVar50;
                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {
                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);
                  }
                  fVar34 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar29 = *(float *)(iVar16 + *(int *)(iVar14 + 0x20) * 4);
              fVar48 = 0.0;
              if (0.0 < fVar29) {
                dVar27 = (double)fVar29 / *(double *)(local_50c + -0x5af0);
                fVar48 = *(float *)(puVar3 + -0x5a8c);
                if (dVar27 < *(double *)(local_4e8 + -0x5ae8)) {
                  dVar27 = dVar27 + *(double *)(puVar9 + 0x1400);
                  if (*(double *)(puVar9 + 0x1410) <= dVar27) {
                    dVar27 = dVar27 - *(double *)(puVar9 + 0x1410);
                  }
                  fVar48 = (float)((int)dVar27 & 0xff) / *(float *)(puVar3 + -0x5a94);
                }
              }
              fVar29 = *(float *)(puVar3 + -0x5a8c);
              if (param_4 != 0) {
                fVar29 = (float)(uVar12 + 1) * fVar47;
              }
              iVar16 = iVar16 + iVar19;
              if (0 < (int)unaff_s0) {
                pbVar11 = (byte *)0x0;
                pfVar8 = unaff_s4;
                do {
                  if ((((*pfVar8 == fVar43) && (pfVar8[1] == fVar34)) && (pfVar8[2] == fVar48)) &&
                     (((char)uVar12 < '\0' || (param_2 == 0x35545844)))) {
                    *pfVar18 = (float)pbVar11;
                    local_2fc[(int)pbVar11 * 4 + 3] = local_2fc[(int)pbVar11 * 4 + 3] + fVar29;
                    goto LAB_002164d0;
                  }
                  pbVar11 = pbVar11 + 1;
                  pfVar8 = pfVar8 + 4;
                } while (pbVar11 != unaff_s0);
              }
              *pfVar18 = (float)unaff_s0;
              local_2fc[(int)unaff_s0 * 4] = fVar43;
              local_2fc[(int)unaff_s0 * 4 + 1] = fVar34;
              local_2fc[(int)unaff_s0 * 4 + 2] = fVar48;
              local_2fc[(int)unaff_s0 * 4 + 3] = fVar29;
              unaff_s0 = unaff_s0 + 1;
LAB_002164d0:
              pfVar18 = pfVar18 + 1;
              puVar7 = puVar7 + 1;
            } while (pfVar22 + local_508._0_4_ != pfVar18);
            iVar6 = iVar19 * local_508._0_4_ + iVar6;
          }
          iVar26 = iVar26 + 1;
          pfVar22 = pfVar22 + 4;
        } while (iVar26 != local_4e4);
        if (0 < (int)unaff_s0) {
          uVar39 = 0;
          pfVar18 = local_2fc + 3;
          pfVar22 = pfVar18 + (int)unaff_s0 * 4;
          do {
            fVar28 = SQRT(*pfVar18);
            if (*pfVar18 < (float)uVar39) {
              (*(code *)PTR_sqrtf_003a9800)();
            }
            *pfVar18 = fVar28;
            pfVar18 = pfVar18 + 4;
          } while (pfVar22 != pfVar18);
        }
        if (param_2 == 0x35545844) {
          local_508._0_4_ = local_4dc;
          if ((local_4dc < uVar20) || (local_508._0_4_ = uVar20, local_4dc - uVar20 < 5)) {
            local_4dc = local_508._0_4_ + 5;
            if (0xff < local_4dc) {
              local_4dc = 0xff;
            }
            if (local_4dc - local_508._0_4_ < 5) {
              local_508._0_4_ = local_4dc - 5;
            }
          }
          goto LAB_002176f8;
        }
      }
      unaff_s3 = unaff_s0;
      if (unaff_s0 != (byte *)0x1) {
        local_474 = 0.0;
        local_478 = 0.0;
        local_47c = 0.0;
        local_480 = 0.0;
        local_484 = 0.0;
        local_488 = 0.0;
        if (unaff_s0 == (byte *)0x0) goto LAB_0021703c;
        fVar47 = 0.0;
        fVar49 = 0.0;
        fVar43 = 0.0;
        fVar28 = 0.0;
        pfVar22 = unaff_s4;
        do {
          fVar29 = pfVar22[3];
          pfVar18 = pfVar22 + 4;
          fVar28 = fVar28 + fVar29;
          fVar43 = fVar29 * *pfVar22 + fVar43;
          fVar49 = fVar29 * pfVar22[1] + fVar49;
          fVar47 = fVar29 * pfVar22[2] + fVar47;
          pfVar22 = pfVar18;
        } while (unaff_s4 + (int)unaff_s0 * 4 != pfVar18);
        if (*(float *)(PTR_UINT_003a8950 + -0x1e58) < fVar28) {
          fVar43 = fVar43 / fVar28;
          fVar49 = fVar49 / fVar28;
          fVar47 = fVar47 / fVar28;
        }
        fVar46 = 0.0;
        fVar44 = 0.0;
        fVar48 = 0.0;
        fVar28 = 0.0;
        fVar34 = 0.0;
        fVar29 = 0.0;
        pfVar22 = unaff_s4;
        do {
          pfVar18 = pfVar22 + 4;
          fVar32 = *pfVar22 - fVar43;
          fVar30 = pfVar22[3];
          fVar33 = pfVar22[1] - fVar49;
          fVar31 = (pfVar22[2] - fVar47) * fVar30;
          fVar29 = fVar32 * fVar30 * fVar32 + fVar29;
          fVar34 = fVar32 * fVar33 * fVar30 + fVar34;
          fVar28 = fVar32 * fVar31 + fVar28;
          fVar48 = fVar33 * fVar33 * fVar30 + fVar48;
          fVar44 = fVar33 * fVar31 + fVar44;
          fVar46 = (pfVar22[2] - fVar47) * fVar31 + fVar46;
          pfVar22 = pfVar18;
          if (unaff_s4 + (int)unaff_s0 * 4 == pfVar18) goto LAB_0021663c;
        } while( true );
      }
      iVar6 = 0;
      uVar5 = 0xffffffff;
      iVar26 = 0;
      fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
      fVar49 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a94);
      fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e70);
      uVar12 = (uint)(local_2fc[1] * fVar49 + fVar47);
      uVar20 = (uint)(local_2fc[2] * fVar49 + fVar47);
      uVar23 = (uint)(local_2fc[0] * fVar49 + fVar47);
      if (0xff < uVar12) {
        uVar12 = 0xff;
      }
      if (0xff < uVar20) {
        uVar20 = 0xff;
      }
      if (0xff < uVar23) {
        uVar23 = 0xff;
      }
      local_fc[2] = (char)uVar20;
      local_fc[1] = (char)uVar12;
      local_fc[0] = (byte)uVar23;
      while( true ) {
        iVar16 = iVar26 * 3;
        pbVar24 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78cc) + (uVar12 & 0xff) * 6 + iVar16);
        pbVar10 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78c8) + (uVar20 & 0xff) * 6 + iVar16);
        pbVar11 = (byte *)(*(int *)(PTR_DAT_003a88cc + -0x78d0) + (uVar23 & 0xff) * 6 + iVar16);
        uVar52 = (uint)pbVar24[2] * (uint)pbVar24[2] + (uint)pbVar10[2] * (uint)pbVar10[2] +
                 (uint)pbVar11[2] * (uint)pbVar11[2];
        if (uVar52 <= uVar5) {
          local_3d8 = (float)*pbVar11 / fVar28;
          local_3d4 = (float)*pbVar24 / *(float *)(PTR_UINT_003a8950 + -0x1e6c);
          local_3d0 = (float)*pbVar10 / fVar28;
          local_3c8 = (byte *)((float)pbVar11[1] / fVar28);
          local_3c4 = (undefined4 *)((float)pbVar24[1] / *(float *)(PTR_UINT_003a8950 + -0x1e6c));
          local_3c0 = (float *)((float)pbVar10[1] / fVar28);
          iVar6 = iVar26 * 2;
          uVar5 = uVar52;
        }
        if (iVar26 == 1) break;
        iVar26 = 1;
      }
      pbVar11 = local_ec;
      do {
        *pbVar11 = (byte)iVar6;
        pbVar11 = pbVar11 + 1;
        pbVar10 = local_dc;
      } while (local_dc != pbVar11);
      do {
        while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {
          *pbVar10 = local_ec[(int)*pfVar21];
          pbVar10 = pbVar10 + 1;
          unaff_s2 = pfVar21 + 1;
          if (unaff_s1 == pfVar21 + 1) goto LAB_00216f04;
        }
        *pbVar10 = 3;
        pbVar10 = pbVar10 + 1;
        unaff_s2 = pfVar21 + 1;
      } while (unaff_s1 != pfVar21 + 1);
LAB_00216f04:
      unaff_s2 = pfVar21 + 1;
      FUN_002128dc(param_1,local_3d8,local_3d4,local_3d0,local_3c8,local_3c4,local_3c0,local_dc);
      while( true ) {
        local_508._0_4_ = *(uint *)(param_1 + 0x18);
        uVar5 = *(uint *)(param_1 + 0x1c);
        uVar23 = local_4cc;
        if ((int)local_4cc < (int)local_508._0_4_) break;
LAB_00216b38:
        local_4d0 = local_4c8;
        pfVar21 = unaff_s4;
        unaff_s6 = param_2;
        unaff_s8 = param_1;
        if ((int)local_4c8 < (int)uVar5) goto LAB_00216150;
LAB_00216b50:
        if (local_5c == *(int *)puVar4) {
          return;
        }
        (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_0021703c:
        fVar46 = 0.0;
        param_2 = unaff_s6;
        param_1 = unaff_s8;
        fVar28 = fVar46;
        fVar29 = fVar46;
        fVar34 = fVar46;
        fVar48 = fVar46;
        fVar44 = fVar46;
LAB_0021663c:
        puVar9 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
        iVar6 = 8;
        dVar51 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
        fVar43 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
        dVar50 = *(double *)(PTR_LAB_003a88e0 + 0x13f8);
        fVar47 = fVar43;
        fVar49 = fVar43;
        do {
          while( true ) {
            fVar30 = fVar44 * fVar43 + fVar34 * fVar49 + fVar48 * fVar47;
            fVar31 = fVar46 * fVar43 + fVar28 * fVar49 + fVar44 * fVar47;
            fVar49 = fVar28 * fVar43 + fVar29 * fVar49 + fVar34 * fVar47;
            if (fVar30 <= fVar31) break;
            if (fVar49 <= fVar30) goto LAB_0021668c;
LAB_00216720:
            local_508 = (double)fVar49;
            if (fVar49 < 0.0) goto LAB_00216730;
LAB_002166ac:
            dVar36 = dVar51;
            if (dVar50 <= local_508) goto LAB_002166c4;
LAB_00216758:
            iVar6 = iVar6 + -1;
            fVar43 = (float)(dVar36 / dVar50);
            fVar49 = fVar49 * fVar43;
            fVar47 = fVar30 * fVar43;
            fVar43 = fVar31 * fVar43;
            if (iVar6 == 0) goto LAB_00216774;
          }
          if (fVar31 < fVar49) goto LAB_00216720;
LAB_0021668c:
          fVar47 = fVar30;
          if (fVar30 <= fVar31) {
            fVar47 = fVar31;
          }
          local_508 = (double)fVar47;
          if (0.0 <= fVar47) goto LAB_002166ac;
LAB_00216730:
          local_4f0 = -local_508;
          dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a78);
          if (local_4f0 < dVar50) goto LAB_00216758;
LAB_002166c4:
          iVar6 = iVar6 + -1;
          fVar43 = (float)(dVar51 / local_508);
          fVar49 = fVar49 * fVar43;
          fVar47 = fVar30 * fVar43;
          fVar43 = fVar31 * fVar43;
        } while (iVar6 != 0);
LAB_00216774:
        uVar37 = (undefined4)((ulonglong)dVar51 >> 0x20);
        if (param_3 == 0) {
          if (unaff_s0 == (byte *)0x0) goto LAB_00216788;
          local_478 = local_2fc[1];
          local_47c = local_2fc[0];
          local_474 = local_2fc[2];
          local_488 = local_2fc[0];
          local_484 = local_2fc[1];
          local_480 = local_2fc[2];
          fVar28 = fVar43 * local_2fc[2] + fVar49 * local_2fc[0] + fVar47 * local_2fc[1];
          if ((int)unaff_s3 < 2) {
            if (0.0 <= local_2fc[0]) {
              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
              goto LAB_002179a0;
            }
LAB_002171e0:
            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002171e8:
            uVar39 = CONCAT44(uVar37,fVar28);
            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (0.0 <= local_478) {
LAB_002179c0:
              fVar29 = local_474;
              fVar34 = local_478;
              fVar47 = local_488;
              fVar49 = local_484;
              fVar43 = local_480;
              if (local_478 <= fVar28) goto LAB_002167a4;
              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002167b4;
            }
          }
          else {
            pfVar22 = local_2fc + 4;
            bVar2 = false;
            bVar15 = false;
            bVar17 = false;
            bVar13 = false;
            fVar29 = local_2fc[0];
            fVar34 = fVar28;
            fVar48 = local_2fc[2];
            fVar44 = local_2fc[1];
            fVar46 = local_2fc[2];
            fVar30 = local_2fc[0];
            fVar31 = local_2fc[1];
            do {
              while( true ) {
                fVar41 = pfVar22[1];
                fVar33 = *pfVar22;
                fVar32 = pfVar22[2];
                fVar35 = fVar43 * fVar32 + fVar49 * fVar33 + fVar47 * fVar41;
                if (fVar35 < fVar34) break;
                if (fVar28 < fVar35) {
                  bVar2 = true;
                  bVar15 = true;
                  bVar17 = true;
                  fVar29 = fVar33;
                  fVar48 = fVar32;
                  fVar44 = fVar41;
                  fVar28 = fVar35;
                }
                pfVar22 = pfVar22 + 4;
                fVar32 = fVar46;
                fVar33 = fVar30;
                fVar41 = fVar31;
                if (pfVar21 + (int)unaff_s3 * 4 == pfVar22) goto LAB_00217194;
              }
              pfVar22 = pfVar22 + 4;
              bVar13 = true;
              fVar34 = fVar35;
              fVar46 = fVar32;
              fVar30 = fVar33;
              fVar31 = fVar41;
            } while (pfVar21 + (int)unaff_s3 * 4 != pfVar22);
LAB_00217194:
            if (bVar13) {
              local_47c = fVar33;
              local_478 = fVar41;
              local_474 = fVar32;
            }
            if (bVar17) {
              local_488 = fVar29;
            }
            if (bVar15) {
              local_484 = fVar44;
            }
            if (bVar2) {
              local_480 = fVar48;
            }
            fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
            if (local_47c < 0.0) goto LAB_002171e0;
LAB_002179a0:
            if (local_47c <= fVar28) {
              fVar28 = local_47c * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
              goto LAB_002171e8;
            }
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
            if (0.0 <= local_478) {
              fVar28 = *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
              goto LAB_002179c0;
            }
          }
          fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          fVar29 = local_474;
          fVar47 = local_488;
          fVar49 = local_484;
          fVar43 = local_480;
          if (0.0 <= local_474) goto LAB_002167c4;
LAB_0021720c:
          fVar29 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
          if ((float)uVar39 <= 0.0) goto LAB_00217224;
LAB_002167f4:
          uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
          fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();
          uVar39 = CONCAT44(uVar37,fVar28);
joined_r0x00216814:
          if (fVar28 <= 0.0) {
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          else {
            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
          }
          uVar39 = CONCAT44(uVar37,fVar29);
          if (0.0 < fVar29) {
            local_474 = (float)(*(code *)PTR_floorf_003a94a0)(uVar39);
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (0.0 <= fVar47) goto LAB_00216890;
LAB_002170a0:
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
LAB_002168a8:
            if (0.0 <= fVar49) {
              fVar28 = *(float *)(puVar9 + -0x5a8c);
              goto LAB_002168bc;
            }
LAB_00217004:
            fVar28 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002168d0:
            if (0.0 <= fVar43) {
              fVar47 = *(float *)(puVar9 + -0x5a8c);
              goto LAB_002168e4;
            }
LAB_00216f6c:
            fVar47 = *(float *)(PTR_s_courses_003a88ec + -0xe34);
            if ((float)uVar39 <= 0.0) goto LAB_00216f7c;
LAB_00216910:
            unaff_s0 = PTR_UINT_003a8950;
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar49 = local_47c;
            fVar43 = local_478;
            fVar29 = local_474;
            fVar34 = (float)(*(code *)PTR_floorf_003a94a0)();
            uVar39 = CONCAT44(uVar37,fVar28);
            if (0.0 < fVar28) goto LAB_00216938;
LAB_00216fa0:
            fVar28 = (float)(*(code *)PTR_ceilf_003a9484)(uVar39);
            if (fVar47 <= 0.0) goto LAB_00216fc8;
LAB_00216960:
            local_480 = (float)(*(code *)PTR_floorf_003a94a0)(fVar47);
          }
          else {
            local_474 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            local_47c = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_474 = local_474 * *(float *)(PTR_UINT_003a8950 + -0x1e54);
            local_478 = fVar28 * *(float *)(PTR_UINT_003a8950 + -0x1e50);
            if (fVar47 < 0.0) goto LAB_002170a0;
LAB_00216890:
            if (*(float *)(puVar9 + -0x5a8c) < fVar47) {
              uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_UINT_003a8950 + -0x1e68));
              goto LAB_002168a8;
            }
            uVar39 = CONCAT44(uVar37,fVar47 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                                     *(float *)(PTR_s_courses_003a88ec + -0xe34));
            fVar28 = *(float *)(puVar9 + -0x5a8c);
            if (fVar49 < 0.0) goto LAB_00217004;
LAB_002168bc:
            if (fVar28 < fVar49) {
              fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e64);
              goto LAB_002168d0;
            }
            fVar28 = fVar49 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
            fVar47 = *(float *)(puVar9 + -0x5a8c);
            if (fVar43 < 0.0) goto LAB_00216f6c;
LAB_002168e4:
            if (fVar43 <= fVar47) {
              fVar47 = fVar43 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if (0.0 < (float)uVar39) goto LAB_00216910;
LAB_00216f7c:
            unaff_s0 = PTR_UINT_003a8950;
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar49 = local_47c;
            fVar43 = local_478;
            fVar29 = local_474;
            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar39 = CONCAT44(uVar37,fVar28);
            if (fVar28 <= 0.0) goto LAB_00216fa0;
LAB_00216938:
            fVar28 = (float)(*(code *)PTR_floorf_003a94a0)();
            if (0.0 < fVar47) goto LAB_00216960;
LAB_00216fc8:
            local_480 = (float)(*(code *)PTR_ceilf_003a9484)();
          }
          fVar47 = *(float *)(PTR_UINT_003a8950 + -0x1e4c);
          local_488 = fVar34 * *(float *)(unaff_s0 + -0x1e54);
          fVar34 = *(float *)(PTR_UINT_003a8950 + -0x1e48);
          local_484 = fVar28 * *(float *)(unaff_s0 + -0x1e50);
          local_480 = local_480 * *(float *)(unaff_s0 + -0x1e54);
          local_1fc = local_47c;
          local_1f8 = local_478;
          local_1f4 = local_474;
          local_1f0 = local_488;
          local_1ec = local_484;
          local_1e8 = local_480;
          local_1e4 = fVar49 * fVar47 + local_488 * fVar34;
          local_1e0 = fVar43 * fVar47 + local_484 * fVar34;
          local_1d8 = fVar49 * fVar34 + local_488 * fVar47;
          local_1dc = fVar29 * fVar47 + local_480 * fVar34;
          local_1d4 = fVar43 * fVar34 + local_484 * fVar47;
          local_1d0 = fVar29 * fVar34 + local_480 * fVar47;
          if (0 < (int)unaff_s3) {
            pbVar11 = local_dc;
            unaff_s3 = unaff_s3 + (int)pbVar11;
            fVar28 = *(float *)(PTR_UINT_003a8950 + -0x1e60);
            do {
              iVar26 = 0;
              pfVar22 = &local_1fc;
              iVar6 = 0;
              fVar47 = fVar28;
              do {
                fVar49 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +
                         (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22) +
                         (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]);
                iVar16 = iVar26;
                if (fVar47 <= fVar49) {
                  iVar16 = iVar6;
                  fVar49 = fVar47;
                }
                fVar47 = fVar49;
                iVar26 = iVar26 + 1;
                pfVar22 = pfVar22 + 3;
                iVar6 = iVar16;
              } while (iVar26 != 4);
              *pbVar11 = (byte)iVar16;
              pbVar11 = pbVar11 + 1;
              pfVar21 = pfVar21 + 4;
            } while (unaff_s3 != pbVar11);
          }
          pbVar11 = local_fc;
          do {
            while (fVar28 = *unaff_s2, unaff_s4 = pfVar21, fVar28 != -NAN) {
              unaff_s2 = unaff_s2 + 1;
              *pbVar11 = local_dc[(int)fVar28];
              pbVar11 = pbVar11 + 1;
              if (unaff_s1 == unaff_s2) goto LAB_00216af4;
            }
            unaff_s2 = unaff_s2 + 1;
            *pbVar11 = 3;
            pbVar11 = pbVar11 + 1;
          } while (unaff_s1 != unaff_s2);
        }
        else {
          if (unaff_s0 == (byte *)0x0) {
LAB_00216788:
            uVar39 = CONCAT44(uVar37,*(undefined4 *)(PTR_s_courses_003a88ec + -0xe34));
            fVar29 = 0.0;
            fVar34 = 0.0;
            fVar47 = 0.0;
            fVar49 = 0.0;
            fVar43 = 0.0;
LAB_002167a4:
            fVar28 = fVar34 * *(float *)(PTR_UINT_003a8950 + -0x1e6c) +
                     *(float *)(PTR_s_courses_003a88ec + -0xe34);
LAB_002167b4:
            if (fVar29 < 0.0) goto LAB_0021720c;
LAB_002167c4:
            if (fVar29 <= *(float *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c)) {
              fVar29 = fVar29 * *(float *)(PTR_UINT_003a8950 + -0x1e70) +
                       *(float *)(PTR_s_courses_003a88ec + -0xe34);
            }
            else {
              fVar29 = *(float *)(PTR_UINT_003a8950 + -0x1e68);
            }
            if (0.0 < (float)uVar39) goto LAB_002167f4;
LAB_00217224:
            uVar37 = (undefined4)((ulonglong)uVar39 >> 0x20);
            fVar34 = (float)(*(code *)PTR_ceilf_003a9484)();
            uVar39 = CONCAT44(uVar37,fVar28);
            goto joined_r0x00216814;
          }
          local_458 = *(undefined4 *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5a8c);
          local_428 = *(undefined4 *)(PTR_s_courses_003a88ec + -0xe34);
          local_408 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e44);
          local_418 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e48);
          local_3e8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e4c);
          local_3f8 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e38);
          pcVar25 = (code *)(PTR_LAB_003a8bc4 + 0x2674);
          local_40c = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e40);
          local_444 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e6c);
          local_3dc = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e3c);
          local_448 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e70);
          local_43c = 0;
          local_438 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e54);
          local_42c = 0;
          local_3d8 = 0.0;
          local_3d4 = 0.0;
          local_3d0 = 0.0;
          local_434 = *(undefined4 *)(PTR_UINT_003a8950 + -0x1e50);
          local_3cc = 0;
          local_470 = fVar49;
          local_46c = fVar47;
          local_468 = fVar43;
          local_454 = local_458;
          local_450 = local_458;
          local_44c = local_458;
          local_440 = local_448;
          local_430 = local_438;
          local_424 = local_428;
          local_420 = local_428;
          local_41c = local_428;
          local_414 = local_418;
          local_410 = local_418;
          local_404 = local_408;
          local_400 = local_408;
          local_3fc = local_408;
          local_3f4 = local_3f8;
          local_3f0 = local_3f8;
          local_3ec = local_3f8;
          local_3e4 = local_3e8;
          local_3e0 = local_3e8;
          FUN_00212674(unaff_s0,pfVar21,fVar49,fVar47,fVar43,&local_1fc,&local_3d8,local_dc,0);
          iVar6 = 0;
          iVar26 = 0;
          iVar16 = 0;
          uVar45 = (ulonglong)*(uint *)(PTR_UINT_003a8950 + -0x1e60);
          pfVar22 = (float *)0x0;
          unaff_s4 = (float *)0x0;
          puVar9 = PTR_LAB_003a8bc8 + -0x7df4;
          do {
            uVar5 = (uint)uVar45;
            (*(code *)PTR_GetMagickResourceLimit_003a913c)(7);
            local_3c8 = unaff_s0;
            local_3c4 = &local_458;
            local_3c0 = &local_47c;
            local_3bc = &local_488;
            local_3b8 = &local_448;
            local_3b4 = &local_438;
            local_3b0 = &local_428;
            local_3ac = &local_418;
            local_3a8 = &local_1fc;
            local_3a4 = &local_408;
            local_3a0 = &local_3f8;
            local_39c = &local_3e8;
            local_398 = &local_3d8;
            local_394 = uVar5;
            local_390 = unaff_s4;
            local_38c = iVar6;
            local_388 = iVar26;
            local_384 = iVar16;
            local_380 = pfVar22;
            (*(code *)PTR_GOMP_parallel_003a9198)(puVar9,&local_3c8,extraout_v1,0);
            iVar16 = local_384;
            iVar26 = local_388;
            iVar6 = local_38c;
            unaff_s4 = local_390;
            uVar45 = (ulonglong)local_394;
            pfVar18 = unaff_s4;
            if (pfVar22 != local_390) break;
            pfVar22 = (float *)((int)pfVar22 + 1);
            if (pfVar22 == (float *)&DAT_00000008) {
              pfVar18 = (float *)&DAT_00000007;
              break;
            }
            local_45c = local_480 - local_474;
            local_460 = local_484 - local_478;
            local_464 = local_488 - local_47c;
            iVar14 = (*pcVar25)(unaff_s0,pfVar21,local_464,local_460,local_45c,&local_1fc,&local_3d8
                                ,local_dc,pfVar22);
          } while (iVar14 != 0);
          pbVar11 = local_dc + (int)pfVar18 * 0x10;
          if (0 < iVar6) {
            pbVar10 = pbVar11;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 0;
            } while (pbVar11 + iVar6 != pbVar10);
          }
          if (iVar6 < iVar26) {
            pbVar10 = pbVar11 + iVar6;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 2;
            } while (pbVar11 + iVar26 != pbVar10);
          }
          if (iVar26 < iVar16) {
            pbVar10 = pbVar11 + iVar26;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 3;
            } while (pbVar11 + iVar16 != pbVar10);
          }
          if (iVar16 < (int)unaff_s3) {
            pbVar10 = pbVar11 + iVar16;
            do {
              bVar1 = *pbVar10;
              pbVar10 = pbVar10 + 1;
              local_ec[bVar1] = 1;
            } while (pbVar11 + (int)unaff_s3 != pbVar10);
          }
          pbVar11 = local_fc;
          do {
            while (pfVar21 = unaff_s2, *pfVar21 != -NAN) {
              *pbVar11 = local_ec[(int)*pfVar21];
              pbVar11 = pbVar11 + 1;
              unaff_s2 = pfVar21 + 1;
              if (unaff_s1 == pfVar21 + 1) goto LAB_002176b0;
            }
            *pbVar11 = 3;
            pbVar11 = pbVar11 + 1;
            unaff_s2 = pfVar21 + 1;
          } while (unaff_s1 != pfVar21 + 1);
LAB_002176b0:
          unaff_s2 = pfVar21 + 1;
        }
LAB_00216af4:
        FUN_002128dc(param_1,local_47c,local_478,local_474,local_488,local_484,local_480,local_fc);
      }
    }
    local_4d0 = local_4c8;
    uVar5 = *(uint *)(param_1 + 0x1c);
    pfVar21 = unaff_s4;
    if ((int)uVar5 <= (int)local_4c8) goto LAB_00216b50;
  } while( true );
}

